public DataImageSurface ToDataImageSurface() { PixelFormat pixelformat_src; SlideImage slide = new SlideImage (); slide.CopyProperties (this); slide.pixels = (byte[]) this.Pixels.Clone(); slide.ProcessEffects (); pixelformat_src = slide.pixel_format; // Pixel format of current buffer slide.pixel_format = PixelFormat.CAIRO_ARGB; // New target format slide.LoadFromPixelData (slide.pixels, pixelformat_src, width, height, width * slide.channels, slide.channels); return new DataImageSurface (DataImageSurface.Allocate (slide.Pixels), Cairo.Format.ARGB32, slide.width, slide.height, slide.stride); }
public DataImageSurface GetThumbnail(int width, int height, bool copy_title) { PixelFormat pixelformat_src; SlideImage slide = new SlideImage (); slide.CopyProperties (this); if(copy_title) slide.Title = Title; slide.LoadAndScaleImage (width, height); slide.ProcessEffects (); slide.ProcessImage (); pixelformat_src = slide.pixel_format; // Pixel format of current buffer slide.pixel_format = PixelFormat.CAIRO_ARGB; // New target format slide.LoadFromPixelData (slide.pixels, pixelformat_src, width, height, width * slide.channels, slide.channels); return new DataImageSurface (DataImageSurface.Allocate (slide.Pixels), Cairo.Format.ARGB32, slide.width, slide.height, slide.stride); }