Пример #1
0
 public WicBitmapImpl(ImagingFactory factory, APixelFormat format, IntPtr data, int width, int height, int stride)
     : base(factory)
 {
     WicImpl     = new Bitmap(factory, width, height, format.ToWic(), BitmapCreateCacheOption.CacheOnDemand);
     PixelFormat = format;
     using (var l = WicImpl.Lock(BitmapLockFlags.Write))
     {
         for (var row = 0; row < height; row++)
         {
             UnmanagedMethods.CopyMemory(new IntPtr(l.Data.DataPointer.ToInt64() + row * l.Stride),
                                         new IntPtr(data.ToInt64() + row * stride), (uint)l.Data.Pitch);
         }
     }
 }
Пример #2
0
 public WicBitmapImpl(APixelFormat format, IntPtr data, int width, int height, int stride)
 {
     WicImpl     = new Bitmap(Direct2D1Platform.ImagingFactory, width, height, format.ToWic(), BitmapCreateCacheOption.CacheOnDemand);
     PixelFormat = format;
     using (var l = WicImpl.Lock(BitmapLockFlags.Write))
     {
         for (var row = 0; row < height; row++)
         {
             UnmanagedMethods.CopyMemory(
                 (l.Data.DataPointer + row * l.Stride),
                 (data + row * stride),
                 (UIntPtr)l.Data.Pitch);
         }
     }
 }
Пример #3
0
        public WicBitmapImpl(APixelFormat format, AlphaFormat alphaFormat, IntPtr data, PixelSize size, Vector dpi, int stride)
        {
            WicImpl = new Bitmap(Direct2D1Platform.ImagingFactory, size.Width, size.Height, format.ToWic(alphaFormat), BitmapCreateCacheOption.CacheOnDemand);
            WicImpl.SetResolution(dpi.X, dpi.Y);
            PixelFormat = format;
            Dpi         = dpi;

            using (var l = WicImpl.Lock(BitmapLockFlags.Write))
            {
                for (var row = 0; row < size.Height; row++)
                {
                    UnmanagedMethods.CopyMemory(
                        (l.Data.DataPointer + row * l.Stride),
                        (data + row * stride),
                        (UIntPtr)l.Data.Pitch);
                }
            }
        }