# stp_image Struct Reference
[image]

The image type is an abstract data type for interfacing with the image creation program. More...

`#include <image.h>`

## Data Fields

void(* | init )(struct stp_image *image)
| This callback is used to perform any initialization required by the image layer for the image.
void(* | reset )(struct stp_image *image)
| This callback is called to reset the image to the beginning.
int(* | width )(struct stp_image *image)
| This callback returns the width of the image in pixels.
int(* | height )(struct stp_image *image)
| This callback returns the height of the image in pixels.
stp_image_status_t(* | get_row )(struct stp_image *image, unsigned char *data, size_t byte_limit, int row)
| This callback transfers the data from the image to the gimp-print library.
const char *(* | get_appname )(struct stp_image *image)
| This callback returns the name of the application.
void(* | conclude )(struct stp_image *image)
| This callback is called at the end of each page.
void * | rep
| A pointer to an application-specific state information that might need to be associated with the image object.

## Detailed Description

The image type is an abstract data type for interfacing with the image creation program.

It provides callbacks to functions defined within the client application which are called while printing the image.

## Field Documentation

void(* stp_image::init)(struct stp_image *image)

This callback is used to perform any initialization required by the image layer for the image.

It will be called once per image.

Parameters:

  | image | the image in use.

void(* stp_image::reset)(struct stp_image *image)

This callback is called to reset the image to the beginning.

It may (in principle) be called multiple times if a page is being printed more than once.

Warning:
  The reset() call may be removed in the future.

Parameters:

  | image | the image in use.

int(* stp_image::width)(struct stp_image *image)

This callback returns the width of the image in pixels.

Parameters:

  | image | the image in use.

int(* stp_image::height)(struct stp_image *image)

This callback returns the height of the image in pixels.

Parameters:

  | image | the image in use.

stp_image_status_t(* stp_image::get_row)(struct stp_image *image, unsigned char *data, size_t byte_limit, int row)

This callback transfers the data from the image to the gimp-print library.

It is called from the driver layer. It should copy WIDTH (as returned by the width() member) pixels of data into the data buffer. It normally returns STP_IMAGE_STATUS_OK; if something goes wrong, or the application wishes to stop producing any further output (e. g. because the user cancelled the print job), it should return STP_IMAGE_STATUS_ABORT. This will cause the driver to flush any remaining data to the output. It will always request rows in monotonically ascending order, but it may skip rows (if, for example, the resolution of the input is higher than the resolution of the output).

Parameters:

  | image | the image in use.
  | data | a pointer to width() bytes of pixel data.
  | byte_limit | (image width * number of channels).
  | row | (unused).

const char*(* stp_image::get_appname)(struct stp_image *image)

This callback returns the name of the application.

This is embedded in the output by some drivers.

void(* stp_image::conclude)(struct stp_image *image)

This callback is called at the end of each page.

void* stp_image::rep

A pointer to an application-specific state information that might need to be associated with the image object.

The documentation for this struct was generated from the following file:

- include/gutenprint/image.h