![]() |
Oyranos Color Management System API |
A reference struct to gather information for image transformation. More...
#include <oyImage_s.h>
Public Types | |
typedef oyPointer(* | oyImage_GetPoint_f) (oyImage_s *image, int point_x, int point_y, int channel, int *is_allocated) |
pixel accessor More... | |
typedef int(* | oyImage_SetPoint_f) (oyImage_s *image, int point_x, int point_y, int channel, oyPointer data) |
pixel setter More... | |
Public Member Functions | |
OYAPI oyImage_s *OYEXPORT | oyImage_New (oyObject_s object) |
allocate a new Image object More... | |
OYAPI oyImage_s *OYEXPORT | oyImage_Copy (oyImage_s *image, oyObject_s object) |
copy or reference a Image object More... | |
OYAPI int OYEXPORT | oyImage_Release (oyImage_s **image) |
release and possibly deallocate a oyImage_s object More... | |
oyPointer | oyImage_GetArray2dPointContinous (oyImage_s *image, int point_x, int point_y, int channel, int *is_allocated) |
Continous layout pixel accessor. More... | |
oyPointer | oyImage_GetArray2dLineContinous (oyImage_s *image, int point_y, int *height, int channel, int *is_allocated) |
Continous layout line accessor. More... | |
int | oyImage_SetArray2dPointContinous (oyImage_s *image, int point_x, int point_y, int channel, oyPointer data) |
Continous layout pixel accessor. More... | |
oyImage_s * | oyImage_Create (int width, int height, oyPointer channels, oyPixel_t pixel_layout, oyProfile_s *profile, oyObject_s object) |
collect infos about a image More... | |
oyImage_s * | oyImage_CreateForDisplay (int width, int height, oyPointer channels, oyPixel_t pixel_layout, const char *display_name, int display_pos_x, int display_pos_y, int display_width, int display_height, oyObject_s object) |
collect infos about a image for showing one a display More... | |
int | oyImage_SetCritical (oyImage_s *image, oyPixel_t pixel_layout, oyProfile_s *profile, oyOptions_s *tags, int width, int height) |
Set a image. More... | |
int | oyImage_FillArray (oyImage_s *image, oyRectangle_s *rectangle, int allocate_method, oyArray2d_s **array, oyRectangle_s *array_rectangle, oyObject_s obj) |
creata a array from a image and fill with data More... | |
int | oyImage_ReadArray (oyImage_s *image, oyRectangle_s *image_rectangle, oyArray2d_s *array, oyRectangle_s *array_rectangle) |
read a array into a image More... | |
int | oyImage_SetData (oyImage_s *image, oyStruct_s **pixel_data, oyImage_GetPoint_f getPoint, oyImage_GetLine_f getLine, oyImage_GetTile_f getTile, oyImage_SetPoint_f setPoint, oyImage_SetLine_f setLine, oyImage_SetTile_f setTile) |
set a custom image data module More... | |
int | oyImage_GetWidth (oyImage_s *image) |
Get the width in pixel. More... | |
int | oyImage_GetHeight (oyImage_s *image) |
Get the width in pixel. More... | |
int | oyImage_GetPixelLayout (oyImage_s *image, oyLAYOUT_e type) |
Get the pixel layout. More... | |
oyCHANNELTYPE_e | oyImage_GetChannelType (oyImage_s *image, int pos) |
Get a channel type. More... | |
int | oyImage_GetSubPositioning (oyImage_s *image) |
Get sub positioning. More... | |
oyProfile_s * | oyImage_GetProfile (oyImage_s *image) |
Get the image profile. More... | |
oyOptions_s * | oyImage_GetTags (oyImage_s *image) |
Get object tags. More... | |
oyStruct_s * | oyImage_GetPixelData (oyImage_s *image) |
Get the pixel data. More... | |
oyImage_GetPoint_f | oyImage_GetPointF (oyImage_s *image) |
Get the point function. More... | |
oyImage_GetLine_f | oyImage_GetLineF (oyImage_s *image) |
Get the Line function. More... | |
oyImage_SetPoint_f | oyImage_GetSetPointF (oyImage_s *image) |
Get the point function. More... | |
oyImage_SetLine_f | oyImage_GetSetLineF (oyImage_s *image) |
Get the Line function. More... | |
oyStruct_s * | oyImage_GetUserData (oyImage_s *image) |
Get the user data. More... | |
int | oyImage_PixelsToSamples (oyImage_s *image, oyRectangle_s *image_rectangle, oyRectangle_s *pixel_rectangle) |
Set sample rectangle from image rectangle. More... | |
![]() | |
const char * | oyStruct_GetTextFromModule (oyStruct_s *obj, oyNAME_e name_type, uint32_t flags) |
get object infos from a module More... | |
const char * | oyStruct_GetText (oyStruct_s *obj, oyNAME_e name_type, uint32_t flags) |
get a text dump More... | |
Data Fields | |
const oyOBJECT_e | type_ |
Type of object. More... | |
oyStruct_Copy_f | copy |
Copy function. More... | |
oyStruct_Release_f | release |
Release function. More... | |
oyObject_s | oy_ |
Oyranos internal object. More... | |
![]() | |
const oyOBJECT_e | type_ |
Type of object. More... | |
oyStruct_Copy_f | copy |
Copy function. More... | |
oyStruct_Release_f | release |
Release function. More... | |
oyObject_s | oy_ |
Oyranos internal object. More... | |
A reference struct to gather information for image transformation.
as we dont target a complete imaging solution, only raster is supported
Resolution is in pixel per centimeter.
Requirements:
To set a image data module use oyImage_DataSet().
Should oyImage_s become internal and we provide a user interface?
typedef oyPointer(* oyImage_GetPoint_f) (oyImage_s *image, int point_x, int point_y, int channel, int *is_allocated) |
pixel accessor
Typedef oyImage_GetPoint_f
[in,out] | image | the image object |
[in] | point_x | the data location in x direction |
[in] | point_y | the data location in y direction |
[in] | channel | the nth channel will is requested -1 means to request all channels, note that can be an expensive call for non continous pixel layouts |
[out] | is_allocated | are the points always newly allocated? |
typedef int(* oyImage_SetPoint_f) (oyImage_s *image, int point_x, int point_y, int channel, oyPointer data) |
pixel setter
Typedef oyImage_SetPoint_f
[in,out] | image | the image object |
[in] | point_x | the data location in x direction |
[in] | point_y | the data location in y direction |
[in] | channel | the nth channel will is requested -1 means to request all channels, note that can be an expensive call for non continous pixel layouts |
[out] | data | the data to be copied into the image |
copy or reference a Image object
Function oyImage_Copy
The function is for copying and for referencing. The reference is the most often used way, which saves resourcs and time.
[in] | image | Image struct object |
object | NULL - means reference, the optional object triggers a real copy |
References oyOBJECT_IMAGE_S.
Referenced by oyFilterPlug_s::oyFilterPlug_ResolveImage(), oyPixelAccess_s::oyPixelAccess_Create(), oyPixelAccess_s::oyPixelAccess_GetOutputImage(), and oyPixelAccess_s::oyPixelAccess_SetOutputImage().
oyImage_s * oyImage_Create | ( | int | width, |
int | height, | ||
oyPointer | channels, | ||
oyPixel_t | pixel_layout, | ||
oyProfile_s * | profile, | ||
oyObject_s | object | ||
) |
collect infos about a image
Create a image description and access object. The passed channels pointer remains in the responsibility of the user. The image is a in memory blob.
[in] | width | image width |
[in] | height | image height |
[in] | channels | pointer to the data buffer |
[in] | pixel_layout | i.e. oyTYPE_123_16 for 16-bit RGB data |
[in] | profile | color space description |
[in] | object | the optional base |
References oyOBJECT_IMAGE_S.
Referenced by oyConversion_s::oyConversion_CreateBasicPixelsFromBuffers(), oyConversion_CreateFromImage(), oyFilterPlug_s::oyFilterPlug_ResolveImage(), and oyImage_CreateForDisplay().
oyImage_s * oyImage_CreateForDisplay | ( | int | width, |
int | height, | ||
oyPointer | channels, | ||
oyPixel_t | pixel_layout, | ||
const char * | display_name, | ||
int | display_pos_x, | ||
int | display_pos_y, | ||
int | display_width, | ||
int | display_height, | ||
oyObject_s | object | ||
) |
collect infos about a image for showing one a display
[in] | width | image width |
[in] | height | image height |
[in] | channels | pointer to the data buffer |
[in] | pixel_layout | i.e. oyTYPE_123_16 for 16-bit RGB data |
[in] | display_name | display name |
[in] | display_pos_x | left image position on display |
[in] | display_pos_y | top image position on display |
[in] | display_width | width to show in window |
[in] | display_height | height to show in window |
[in] | object | the optional base |
References oyEDITING_XYZ, oyImage_Create(), oyOBJECT_RECTANGLE_S, oyOptions_s::oyOptions_GetType(), oyOptions_s::oyOptions_SetFromText(), oyProfile_s::oyProfile_FromStd(), oyProfile_s::oyProfile_Release(), and oyRectangle_s::oyRectangle_SetGeo().
int oyImage_FillArray | ( | oyImage_s * | image, |
oyRectangle_s * | rectangle, | ||
int | allocate_method, | ||
oyArray2d_s ** | array, | ||
oyRectangle_s * | array_rectangle, | ||
oyObject_s | obj | ||
) |
creata a array from a image and fill with data
Function oyImage_FillArray
The rectangle will be considered relative to the data. A given array will be filled. Allocation of a new array2d object happens as needed.
[in] | image | the image |
[in] | rectangle | the image rectangle in a relative unit a rectangle in the source image |
[in] | allocate_method |
|
[out] | array | array to fill; If array is empty, it is allocated as per allocate_method |
[in] | array_rectangle | the array rectangle in samples For NULL the image rectangle will be placed to the top left corner in array. If array_rectangle is provided, image samples will be placed in array at array_rectangle's position and size. The unit is relative to the image. |
[in] | obj | the optional user object |
References oyArray2d_s::oyArray2d_Release(), oyArray2d_s::oyArray2d_Reset(), oyArray2d_s::oyArray2d_SetFocus(), oyCHANS, oyDataTypeGetSize(), oyImage_PixelsToSamples(), oyLAYOUT, oyOBJECT_IMAGE_S, oyOBJECT_RECTANGLE_S, oyRectangle_s::oyRectangle_SetGeo(), oyToDataType_m, and oyUINT8.
oyPointer oyImage_GetArray2dLineContinous | ( | oyImage_s * | image, |
int | point_y, | ||
int * | height, | ||
int | channel, | ||
int * | is_allocated | ||
) |
Continous layout line accessor.
Function oyImage_GetArray2dLineContinous
Will be used by default.
Referenced by oyImage_SetCritical().
oyPointer oyImage_GetArray2dPointContinous | ( | oyImage_s * | image, |
int | point_x, | ||
int | point_y, | ||
int | channel, | ||
int * | is_allocated | ||
) |
Continous layout pixel accessor.
Function oyImage_GetArray2dPointContinous
Will be used by default.
References oyCHAN0, oyCHANS, and oyDATA_SIZE.
Referenced by oyImage_SetCritical().
oyCHANNELTYPE_e oyImage_GetChannelType | ( | oyImage_s * | image, |
int | pos | ||
) |
Get a channel type.
Function oyImage_GetChannelType
References oyOBJECT_IMAGE_S.
int oyImage_GetHeight | ( | oyImage_s * | image | ) |
Get the width in pixel.
Function oyImage_GetHeight
References oyOBJECT_IMAGE_S.
Referenced by oyConversion_CreateFromImage(), oyImage_PixelsToSamples(), and oyPixelAccess_s::oyPixelAccess_Create().
oyImage_GetLine_f oyImage_GetLineF | ( | oyImage_s * | image | ) |
Get the Line function.
Function oyImage_GetLineF
References oyOBJECT_IMAGE_S.
oyStruct_s * oyImage_GetPixelData | ( | oyImage_s * | image | ) |
Get the pixel data.
Function oyImage_GetPixelData
References copy, and oyOBJECT_IMAGE_S.
int oyImage_GetPixelLayout | ( | oyImage_s * | image, |
oyLAYOUT_e | type | ||
) |
Get the pixel layout.
Function oyImage_GetPixelLayout
References oyOBJECT_IMAGE_S.
Referenced by oyConversion_CreateFromImage(), and oyImage_PixelsToSamples().
oyImage_GetPoint_f oyImage_GetPointF | ( | oyImage_s * | image | ) |
Get the point function.
Function oyImage_GetPointF
References oyOBJECT_IMAGE_S.
oyProfile_s * oyImage_GetProfile | ( | oyImage_s * | image | ) |
Get the image profile.
Function oyImage_GetProfile
References oyOBJECT_IMAGE_S, and oyProfile_s::oyProfile_Copy().
Referenced by oyConversion_CreateFromImage().
oyImage_SetLine_f oyImage_GetSetLineF | ( | oyImage_s * | image | ) |
Get the Line function.
Function oyImage_GetSetLineF
oyImage_SetPoint_f oyImage_GetSetPointF | ( | oyImage_s * | image | ) |
Get the point function.
Function oyImage_GetSetPointF
References oyOBJECT_IMAGE_S.
int oyImage_GetSubPositioning | ( | oyImage_s * | image | ) |
Get sub positioning.
Function oyImage_GetSubPositioning
References oyOBJECT_IMAGE_S.
oyOptions_s * oyImage_GetTags | ( | oyImage_s * | image | ) |
Get object tags.
Function oyImage_GetTags
References oyOBJECT_IMAGE_S, and oyOptions_s::oyOptions_Copy().
oyStruct_s * oyImage_GetUserData | ( | oyImage_s * | image | ) |
Get the user data.
Function oyImage_GetUserData
References copy, and oyOBJECT_IMAGE_S.
int oyImage_GetWidth | ( | oyImage_s * | image | ) |
Get the width in pixel.
Function oyImage_GetWidth
References oyOBJECT_IMAGE_S.
Referenced by oyConversion_CreateFromImage(), oyImage_PixelsToSamples(), and oyPixelAccess_s::oyPixelAccess_Create().
OYAPI oyImage_s *OYEXPORT oyImage_New | ( | oyObject_s | object | ) |
int oyImage_PixelsToSamples | ( | oyImage_s * | image, |
oyRectangle_s * | image_rectangle, | ||
oyRectangle_s * | pixel_rectangle | ||
) |
Set sample rectangle from image rectangle.
Function oyImage_PixelsToSamples
[in] | image | a image |
[in] | image_rectangle | rectangle from image, optional |
[in,out] | pixel_rectangle | rectangle for pixel results |
References oyCHANS, oyImage_GetHeight(), oyImage_GetPixelLayout(), oyImage_GetWidth(), oyOBJECT_IMAGE_S, oyRectangle_s::oyRectangle_Round(), oyRectangle_s::oyRectangle_Scale(), oyRectangle_s::oyRectangle_SetByRectangle(), oyRectangle_s::oyRectangle_SetGeo(), and type_.
Referenced by oyImage_FillArray(), and oyImage_ReadArray().
int oyImage_ReadArray | ( | oyImage_s * | image, |
oyRectangle_s * | image_rectangle, | ||
oyArray2d_s * | array, | ||
oyRectangle_s * | array_rectangle | ||
) |
read a array into a image
Function oyImage_ReadArray
The rectangle will be considered relative to the image. The given array should match that rectangle.
References oyCHANS, oyDataTypeGetSize(), oyImage_PixelsToSamples(), oyLAYOUT, oyOBJECT_IMAGE_S, oyOBJECT_RECTANGLE_S, oyRectangle_s::oyRectangle_Show(), oyToDataType_m, and oyUINT8.
OYAPI int OYEXPORT oyImage_Release | ( | oyImage_s ** | image | ) |
release and possibly deallocate a oyImage_s object
Function oyImage_Release
[in,out] | image | Image struct object |
References oyOBJECT_IMAGE_S.
Referenced by oyConversion_s::oyConversion_CreateBasicPixelsFromBuffers(), oyFilterPlug_s::oyFilterPlug_ResolveImage(), and oyPixelAccess_s::oyPixelAccess_SetOutputImage().
int oyImage_SetArray2dPointContinous | ( | oyImage_s * | image, |
int | point_x, | ||
int | point_y, | ||
int | channel, | ||
oyPointer | data | ||
) |
Continous layout pixel accessor.
Function oyImage_SetArray2dPointContinous
Will be used by default.
References oyCHAN0, oyCHANS, oyDATA_SIZE, oyDataTypeGetSize(), oyLAYOUT, oyToChannels_m, and oyToDataType_m.
Referenced by oyImage_SetCritical().
int oyImage_SetCritical | ( | oyImage_s * | image, |
oyPixel_t | pixel_layout, | ||
oyProfile_s * | profile, | ||
oyOptions_s * | tags, | ||
int | width, | ||
int | height | ||
) |
Set a image.
Function oyImage_SetCritical
Set critical options and check consitency.
[in,out] | image | the image |
[in] | pixel_layout | the new layout or pass 0 |
[in] | profile | assign a new profile reinterprets color, optional |
[in] | tags | new tags, replace any old tags, optional |
[in] | width | new width or pass -1 |
[in] | height | new height or pass -1 |
References oyOptions_s::oy_, oyArray2d_s::oyArray2d_Create(), oyImage_GetArray2dLineContinous(), oyImage_GetArray2dPointContinous(), oyImage_SetArray2dPointContinous(), oyImage_SetData(), oyLAYOUT, oyOBJECT_IMAGE_S, oyOptions_s::oyOptions_Copy(), oyOptions_s::oyOptions_Release(), oyProfile_s::oyProfile_Copy(), oyProfile_s::oyProfile_Release(), oyToChannels_m, and oyToDataType_m.
int oyImage_SetData | ( | oyImage_s * | image, |
oyStruct_s ** | pixel_data, | ||
oyImage_GetPoint_f | getPoint, | ||
oyImage_GetLine_f | getLine, | ||
oyImage_GetTile_f | getTile, | ||
oyImage_SetPoint_f | setPoint, | ||
oyImage_SetLine_f | setLine, | ||
oyImage_SetTile_f | setTile | ||
) |
set a custom image data module
Function oyImage_SetData
This function allowes for exchanging of all the module components.
The pixel_data structure can hold in memory or mmap representations or file pointers. The according point, line and/or tile functions shall use the oyImage_s::pixel_data member to access the data and provide in this interface.
image | the image |
pixel_data | data struct will be moved in |
getPoint | interface function |
getLine | interface function |
getTile | interface function |
setPoint | interface function |
setLine | interface function |
setTile | interface function |
Referenced by oyImage_SetCritical().
oyStruct_Copy_f oyImage_s::copy |
Copy function.
Referenced by oyImage_GetPixelData(), and oyImage_GetUserData().
oyObject_s oyImage_s::oy_ |
Oyranos internal object.
Features name and hash. Do not change during object life time.
oyStruct_Release_f oyImage_s::release |
Release function.
const oyOBJECT_e oyImage_s::type_ |
Type of object.
The struct type tells Oyranos how to interprete hidden fields.
Referenced by oyImage_PixelsToSamples().