Example #1
0
        public static bool ShowEdit(Form owner, IImageObject obj)
        {
            Debug.Assert(obj != null);

            using (PrintObjectForm form = new PrintObjectForm())
            {
                Type type = typeof(VoucherAllocation);
                var properties = type.GetProperties();
                var propertiesstrList = properties.Convert<PropertyInfo, string>((i) => i.Name).ToArray();
                form.Bind(propertiesstrList);
                form.Location = Control.MousePosition;
                form.SelectedFont = obj.Font;
                form.SelectedText = obj.Text;
                form.Format = obj.Format;
                form.IsBarCode = obj is BarcodeInter2of5;
                form.DataSourceColumn = obj.BoundColumn;
                form.DisableTypeChange();

                if (form.ShowDialog(owner) == DialogResult.OK)
                {
                    obj.Font = form.SelectedFont;
                    obj.Text = form.SelectedText;
                    obj.Format = form.Format;
                    obj.BoundColumn = form.DataSourceColumn;

                    using (Graphics g = owner.CreateGraphics())
                        obj.Measure(g);

                    return true;
                }
                return false;
            }
        }
Example #2
0
        private void Init(IImageObject image, byte[] buffer, GraphicsState state)
        {
            this.state      = state;
            this.image      = image;
            this.buffer     = buffer;
            imageMask       = image.ImageMask;
            decode          = image.Decode;
            matte           = image.Matte;
            size            = image.Size;
            bitPerComponent = image.BitsPerComponent;

            maximum = Math.Pow(2, bitPerComponent) - 1;
            min     = 0D;
            max     = indexed ? maximum : 1D;

            sMask = image.SMask;
            if (sMask != null)
            {
                sMaskLoader = new ImageLoader(sMask, state);
            }
            if (imageMask)
            {
                return;
            }
            colorSpace      = image.ColorSpace;
            componentsCount = colorSpace.ComponentCount;
            iccColorSpace   = colorSpace as ICCBasedColorSpace;
            if (colorSpace is IndexedColorSpace indexedColorSpace)
            {
                indexed       = true;
                iccColorSpace = indexedColorSpace.BaseSpace as ICCBasedColorSpace;
            }
        }
Example #3
0
        public static IImageObject ShowCreate(Form owner)
        {
            IImageObject result = null;

            using (PrintObjectForm form = new PrintObjectForm())
            {
                Type type = typeof(VoucherAllocation);
                var properties = type.GetProperties();
                var propertiesstrList = properties.Convert<PropertyInfo, string>((i) => i.Name).ToArray();
                form.Bind(propertiesstrList);
                form.Location = Control.MousePosition;

                if (form.ShowDialog(owner) == DialogResult.OK)
                {
                    result = (form.IsBarCode) ? (IImageObject)new BarcodeInter2of5() : (IImageObject)new TextObject();
                    result.Text = form.SelectedText;
                    result.Font = form.SelectedFont;
                    result.BoundColumn = form.DataSourceColumn;
                    result.Format = form.Format;

                    using (Graphics g = owner.CreateGraphics())
                        result.Measure(g);

                }
                return result;
            }             
        }
Example #4
0
        public static SKBitmap LoadImage(IImageObject imageObject, byte[] data, PdfName filterItem, PdfDirectObject parameterItem)
        {
            SKBitmap image = null;

            if (filterItem.Equals(PdfName.DCTDecode) ||
                filterItem.Equals(PdfName.DCT))
            {
                image = SKBitmap.Decode(data);
            }
            else if (filterItem.Equals(PdfName.CCITTFaxDecode) ||
                     filterItem.Equals(PdfName.CCF))
            {
                image = LoadTiff(data, parameterItem ?? imageObject.Header);
            }
            else if (filterItem.Equals(PdfName.JPXDecode))
            {
                image = LoadJPEG2000(data, parameterItem ?? imageObject.Header);
            }
            else if (filterItem.Equals(PdfName.JBIG2Decode))
            {
                image = LoadJBIG(data, parameterItem ?? imageObject.Header);
            }

            return(image);
        }
Example #5
0
 private void AddDelete_Click(object sender, EventArgs e)
 {
     if (sender == tsmiAdd)
     {
         IImageObject point = PrintObjectForm.ShowCreate(this);
         if (point != null)
         {
             point.Location = m_CurrentLocation;
             m_DocumentLayout.MetaObjectsList.Add(point);
             Invalidate();
         }
     }
     else if (sender == tsmiDelete)
     {
         if (m_SelectImageObject != null && m_DocumentLayout.MetaObjectsList.Remove(m_SelectImageObject))
         {
             Invalidate();
         }
         m_SelectImageObject = null;
     }
     else if (sender == tsmiEdit)
     {
         if (m_SelectImageObject != null && PrintObjectForm.ShowEdit(this, m_SelectImageObject))
         {
             Invalidate();
         }
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Example #6
0
        public static IToggleModel NewToggleModel(this IModelFactory factory, string id,
                                                  ToggledEventHandler handler, IImageObject image, bool isEnabled = true, bool isVisible = true)
        {
            var model = factory?.NewToggleModel(id, isEnabled, isVisible).SetImage(image);

            model.Toggled += handler;
            return(model?.Attach(id));
        }
Example #7
0
        public static object ExtractImage(IImageObject imageObject, IBuffer data, PdfName filterItem,
                                          PdfDirectObject parameterItem, IDictionary <PdfName, PdfDirectObject> header)
        {
            //using (var stream = new MemoryStream(data.GetBuffer()))
            //using (var skiaData = SKData.Create(stream))
            //using (var codec = SKCodec.Create(skiaData))
            //{
            //    var sizei = codec.GetScaledDimensions(0.5f);
            //    var nearest = new SKImageInfo(sizei.Width, sizei.Height);
            //    bitmap = SKBitmap.Decode(codec, nearest);
            //}


            //if (filterItem.Equals(PdfName.DCTDecode)
            //    || filterItem.Equals(PdfName.DCT))
            //{
            //    SKBitmap bitmap = SKBitmap.Decode(data.GetBuffer());

            //    if (imageObject.SMask != null)
            //    {
            //        var info = bitmap.Info;
            //        BitmapLoader smaskLoader = new BitmapLoader(imageObject.SMask, null);
            //        var smask = smaskLoader.LoadSKMask();
            //        //bitmap.InstallMaskPixels(smask); //Skia bug
            //        //vs
            //        for (int y = 0; y < info.Height; y++)
            //        {
            //            var row = y * info.Width;
            //            for (int x = 0; x < info.Width; x++)
            //            {
            //                var index = row + x;
            //                var alpha = smask.GetAddr8(x, y);
            //                if (smaskLoader.decode[0] == 1)
            //                {
            //                    alpha = (byte)(255 - alpha);
            //                }
            //                var color = bitmap.GetPixel(x, y).WithAlpha(alpha);
            //                bitmap.SetPixel(x, y, color);
            //            }
            //        }
            //        smask.FreeImage();
            //    }
            //    return bitmap;
            //}

            if (filterItem != null)
            {
                return(Bytes.Buffer.Extract(data, filterItem, parameterItem, imageObject.Header));
            }

            return(data);
        }
Example #8
0
        public BitmapLoader(IImageObject image, GraphicsState state)
        {
            var buffer = image.Data;
            var data   = buffer.GetBuffer();
            var filter = image.Filter;

            if (filter != null)
            {
                buffer = Bytes.Buffer.Extract(buffer, filter, image.Parameters, image.Header);
                data   = buffer.GetBuffer();
            }
            Init(image, data, state);
        }
Example #9
0
        private void ContextMenu_Opening(object sender, CancelEventArgs e)
        {
            m_SelectImageObject = null;
            m_CurrentLocation   = this.PointToClient(Control.MousePosition);
            m_CurrentLocation.Offset(Offset);

            foreach (var obj in m_DocumentLayout.MetaObjectsList)
            {
                if (obj.Contains(m_CurrentLocation))
                {
                    m_SelectImageObject = obj;
                    break;
                }
            }
        }
Example #10
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Point p = this.PointToClient(Control.MousePosition);
                p.Offset(Offset);

                foreach (var obj in m_DocumentLayout.MetaObjectsList)
                {
                    obj.Selected = obj.Contains(p);
                    if (obj.Selected)
                    {
                        m_SelectImageObject = obj;
                    }
                }

                Invalidate();
            }
            base.OnMouseDown(e);
        }
Example #11
0
        public static SKBitmap Load(IImageObject imageObject, GraphicsState state)
        {
            var data   = imageObject.Data;
            var filter = imageObject.Filter;

            if (filter is PdfArray filterArray)
            {
                var parameterArray = imageObject.Parameters as PdfArray;
                for (int i = 0; i < filterArray.Count; i++)
                {
                    var filterItem    = (PdfName)filterArray[i];
                    var parameterItem = parameterArray?[i];
                    var temp          = ExtractImage(imageObject, data, filterItem, parameterItem, imageObject.Header);
                    if (temp is IBuffer tempBuffer)
                    {
                        data = tempBuffer;
                    }
                    else if (temp is SKBitmap tempImage)
                    {
                        return(tempImage);
                    }
                }
            }
            else if (filter != null)
            {
                var filterItem = (PdfName)filter;
                var temp       = ExtractImage(imageObject, data, filterItem, imageObject.Parameters, imageObject.Header);
                if (temp is IBuffer tempBuffer)
                {
                    data = tempBuffer;
                }
                else if (temp is SKBitmap tempImage)
                {
                    return(tempImage);
                }
            }

            var loader = new BitmapLoader(imageObject, data.GetBuffer(), state);

            return(loader.Load());
        }
Example #12
0
        public static SKBitmap Load(IImageObject imageObject, GraphicsState state)
        {
            var buffer = imageObject.Data;
            var data   = buffer.GetBuffer();
            var image  = (SKBitmap)null;
            var filter = imageObject.Filter;

            if (filter is PdfArray filterArray)
            {
                var parameterArray = imageObject.Parameters as PdfArray;
                for (int i = 0; i < filterArray.Count; i++)
                {
                    var filterItem    = (PdfName)filterArray[i];
                    var parameterItem = parameterArray?[i];
                    image = LoadImage(imageObject, data, filterItem, parameterItem);
                    if (image == null)
                    {
                        buffer = Bytes.Buffer.Extract(buffer, filterItem, parameterItem ?? imageObject.Header);
                        data   = buffer.GetBuffer();
                    }
                }
            }
            else if (filter != null)
            {
                var filterItem = (PdfName)filter;
                image = LoadImage(imageObject, data, filterItem, imageObject.Parameters ?? imageObject.Header);
                if (image == null)
                {
                    buffer = Bytes.Buffer.Extract(buffer, filter, imageObject.Parameters ?? imageObject.Header);
                    data   = buffer.GetBuffer();
                    image  = SKBitmap.Decode(data);
                }
            }

            if (image == null)
            {
                var imageLoader = new ImageLoader(imageObject, data, state);
                image = imageLoader.Load();
            }
            return(image);
        }
 public IButtonModel SetImage(IImageObject image)
 {
     Image = image; return(this);
 }
 public IToggleModel SetImage(IImageObject image)
 {
     Image = image; return(this);
 }
 public IComboBoxModel SetImage(IImageObject image)
 {
     Image = image; return(this);
 }
Example #16
0
 public BitmapLoader(IImageObject image, byte[] buffer, GraphicsState state)
 {
     Init(image, buffer, state);
 }
 public IDynamicMenuModel SetImage(IImageObject image)
 {
     Image = image; return(this);
 }
Example #18
0
 public IStaticDropDownModel SetImage(IImageObject image)
 {
     Image = image; return(this);
 }
 public static object Image(this IImageObject @this)
 => @this?.IsMso ?? false ? @this?.ImageMso as object : @this?.ImageDisp;
Example #20
0
 public IStaticGalleryModel SetImage(IImageObject image)
 {
     Image = image; return(this);
 }