Exemplo n.º 1
0
        public BorderPaint(Bitmap image, bool imageIsOwned, BorderPaintMode flags, params Rectangle[] slices)
        {
            _flags = flags;
            _slices = slices;
            _bitmap = image;
            _imageIsOwned = imageIsOwned;

            if (IsFlagSet(flags, BorderPaintMode.GDI))
            {
                _hBitmap = image.GetHbitmap();
            }
            else if (IsFlagSet(flags, BorderPaintMode.Cached))
            {
                _sliceCache = new Bitmap[SLICECOUNT];
                for (int i = 0; i < SLICECOUNT; i++)
                {
                    if (slices[i].Width > 0 && slices[i].Height > 0)
                    {
                        Bitmap cachedSlice = new Bitmap(slices[i].Width, slices[i].Height, image.PixelFormat);
                        using (Graphics g = Graphics.FromImage(cachedSlice))
                            g.DrawImage(image, new Rectangle(0, 0, slices[i].Width, slices[i].Height), slices[i], GraphicsUnit.Pixel);
                        _sliceCache[i] = cachedSlice;
                    }
                }
            }
        }
Exemplo n.º 2
0
 public BorderPaint(Bitmap image, bool imageIsOwned, BorderPaintMode flags, int vert1, int vert2, int horiz1, int horiz2)
     : this(image, imageIsOwned, flags, GraphicsHelper.SliceCompositedImageBorder(image.Size, vert1, vert2, horiz1, horiz2))
 {
 }
Exemplo n.º 3
0
 private static bool IsFlagSet(BorderPaintMode val, BorderPaintMode test)
 {
     return (val & test) == test;
 }