<!-- ##### SECTION Title ##### --> Image Surfaces <!-- ##### SECTION Short_Description ##### --> Rendering to memory buffers <!-- ##### SECTION Long_Description ##### --> <para> Image surfaces provide the ability to render to memory buffers either allocated by cairo or by the calling code. The supported image formats are those defined in #cairo_format_t. </para> <!-- ##### SECTION See_Also ##### --> <para> <itemizedlist> <listitem>#cairo_surface_t</listitem> </itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> <!-- ##### MACRO CAIRO_HAS_IMAGE_SURFACE ##### --> <para> Defined if the image surface backend is available. The image surface backend is always built in. This macro was added for completeness in cairo 1.8. </para> @Since: 1.8 <!-- ##### ENUM cairo_format_t ##### --> <para> </para> @CAIRO_FORMAT_ARGB32: @CAIRO_FORMAT_RGB24: @CAIRO_FORMAT_A8: @CAIRO_FORMAT_A1: <!-- ##### FUNCTION cairo_format_stride_for_width ##### --> <para> </para> @format: @width: @Returns: <!-- ##### FUNCTION cairo_image_surface_create ##### --> <para> </para> @format: @width: @height: @Returns: <!-- ##### FUNCTION cairo_image_surface_create_for_data ##### --> <para> </para> @data: @format: @width: @height: @stride: @Returns: <!-- ##### FUNCTION cairo_image_surface_get_data ##### --> <para> </para> @surface: @Returns: <!-- ##### FUNCTION cairo_image_surface_get_format ##### --> <para> </para> @surface: @Returns: <!-- ##### FUNCTION cairo_image_surface_get_width ##### --> <para> </para> @surface: @Returns: <!-- ##### FUNCTION cairo_image_surface_get_height ##### --> <para> </para> @surface: @Returns: <!-- ##### FUNCTION cairo_image_surface_get_stride ##### --> <para> </para> @surface: @Returns: