Pixbuf.this
- this(GdkPixbuf* gdkPixbuf, bool ownedRef)
- this(GdkColorspace colorspace, bool hasAlpha, int bitsPerSample, int width, int height)
- this(Bytes data, GdkColorspace colorspace, bool hasAlpha, int bitsPerSample, int width, int height, int rowstride)
- this(string data, GdkColorspace colorspace, bool hasAlpha, int bitsPerSample, int width, int height, int rowstride, GdkPixbufDestroyNotify destroyFn, void* destroyFnData)
- this(string filename)
- this(string filename, int width, int height, bool preserveAspectRatio)
- this(string filename, int width, int height)
- this(ubyte[] data, bool copyPixels)
- this(InputStream stream, Cancellable cancellable)
- this(InputStream stream, int width, int height, bool preserveAspectRatio, Cancellable cancellable)
- this(AsyncResultIF asyncResult)
- this(string[] data)
gdkpixbuf Pixbuf Pixbuf
constructorsfunctionsmixinsstatic functionsvariables
Create a #GdkPixbuf from a flat representation that is suitable for storing as inline data in a program. This is useful if you want to ship a program with images, but don't want to depend on any external files.
gdk-pixbuf ships with a program called [gdk-pixbuf-csource][gdk-pixbuf-csource], which allows for conversion of #GdkPixbufs into such a inline representation. In almost all cases, you should pass the --raw option to gdk-pixbuf-csource. A sample invocation would be:
|[ gdk-pixbuf-csource --raw --name=myimage_inline myimage.png ]|
For the typical case where the inline pixbuf is read-only static data, you don't need to copy the pixel data unless you intend to write to it, so you can pass %FALSE for @copy_pixels. (If you pass --rle to gdk-pixbuf-csource, a copy will be made even if @copy_pixels is %FALSE, so using this option is generally a bad idea.)
If you create a pixbuf from const inline data compiled into your program, it's probably safe to ignore errors and disable length checks, since things will always succeed: |[ pixbuf = gdk_pixbuf_new_from_inline (-1, myimage_inline, FALSE, NULL); ]|
For non-const inline data, you could get out of memory. For untrusted inline data located at runtime, you could have corrupt inline data in addition.