![]() |
Oyranos
git-devel
Oyranos is a full featured Color Management System
|
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 OY_UNUSED, 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 pixels, 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, int icc_profile_flags, 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_WritePPM (oyImage_s *image, const char *file_name, const char *free_text) |
write buffer to portable pix map format 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_RoiToSamples (oyImage_s *image, oyRectangle_s *roi, oyRectangle_s **sample_rectangle) |
Set sample rectangle from image rectangle. More... | |
int | oyImage_SamplesToRoi (oyImage_s *image, oyRectangle_s *sample_rectangle, oyRectangle_s **roi) |
Set rectangle in image dimension from samples. More... | |
int | oyImage_SamplesToPixels (oyImage_s *image, oyRectangle_s *sample_rectangle, oyRectangle_s *pixel_rectangle) |
Set rectangle in pixel dimension from samples. More... | |
int | oyImage_PixelsToSamples (oyImage_s *image, oyRectangle_s *pixel_rectangle, oyRectangle_s *sample_rectangle) |
Set rectangle in sample dimension from pixels. More... | |
int | oyImage_FromFile (const char *file_name, int icc_profile_flags, oyImage_s **image, oyObject_s obj) |
generate a Oyranos image from a file name More... | |
int | oyImage_ToFile (oyImage_s *image, const char *file_name, oyOptions_s *opts) |
write a Oyranos image to a file name More... | |
void | oyImage_Release__Members (oyImage_s_ *image) |
Custom Image destructor. More... | |
int | oyImage_Init__Members (oyImage_s_ *image) |
Custom Image constructor. More... | |
int | oyImage_Copy__Members (oyImage_s_ *dst, oyImage_s_ *src) |
Custom Image copy constructor. 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... | |
int | oyStruct_RegisterStaticMessageFunc (int type, oyStruct_RegisterStaticMessageFunc_f msg, oyStruct_RegisterStaticFreeFunc_f free_func) |
register a function for verbosity More... | |
const char * | oyStruct_GetInfo (oyPointer context_object, oyNAME_e type, int flags) |
get a additional string from a object More... | |
const char * | oyStructTypeToText (oyOBJECT_e type) |
Objects type to small string. 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 don't target a complete imaging solution, only raster is supported
Resolution is in pixel per centimeter.
Requirements:
Create a basic image with the pixel owned by the caller use oyImage_Create().
To set a image data module use oyImage_SetData().
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 |
OYAPI oyImage_s *OYEXPORT oyImage_Copy | ( | oyImage_s * | image, |
oyObject_s | object | ||
) |
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 |
int oyImage_Copy__Members | ( | oyImage_s_ * | dst, |
oyImage_s_ * | src | ||
) |
Custom Image copy constructor.
Function oyImage_Copy__Members
oyImage_s * oyImage_Create | ( | int | width, |
int | height, | ||
oyPointer | pixels, | ||
oyPixel_t | pixel_layout, | ||
oyProfile_s * | profile, | ||
oyObject_s | object | ||
) |
collect infos about a image
Create a image description and access object. The passed pixels pointer remains in the responsibility of the user. The image is a in memory blob.
[in] | width | image width |
[in] | height | image height |
[in] | pixels | 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 |
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, | ||
int | icc_profile_flags, | ||
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] | icc_profile_flags | profile selection flags, see oyProfile_FromFile() |
[in] | object | the optional base |
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 oyImage_GetWidth(image) == 1.0 unit. The rectangle is in the source image. |
[in] | allocate_method |
|
[out] | array | array to fill; If array is empty, it is allocated as per allocate_method. During function execution the array might have a changed focus. Focus is restored before return. |
[in] | array_rectangle | The array rectangle in oyImage_GetWidth(image) == 1.0 unit. 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 |
int oyImage_FromFile | ( | const char * | file_name, |
int | icc_profile_flags, | ||
oyImage_s ** | image, | ||
oyObject_s | obj | ||
) |
generate a Oyranos image from a file name
Function oyImage_FromFile
The file name will be stored inside the image's tags.
[in] | file_name | input |
[in] | icc_profile_flags | profile selection flags, see oyProfile_FromFile() |
[out] | image | output |
[in] | obj | Oyranos object (optional) |
oyPointer oyImage_GetArray2dLineContinous | ( | oyImage_s * | image, |
int | point_y, | ||
int * | height, | ||
int channel | OY_UNUSED, | ||
int * | is_allocated | ||
) |
Continous layout line accessor.
Function oyImage_GetArray2dLineContinous
Will be used by default.
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.
oyCHANNELTYPE_e oyImage_GetChannelType | ( | oyImage_s * | image, |
int | pos | ||
) |
Get a channel type.
Function oyImage_GetChannelType
Referenced by oyConnectorImaging_s::oyFilterSocket_MatchImagingPlug().
int oyImage_GetHeight | ( | oyImage_s * | image | ) |
Get the width in pixel.
Function oyImage_GetHeight
oyImage_GetLine_f oyImage_GetLineF | ( | oyImage_s * | image | ) |
Get the Line function.
Function oyImage_GetLineF
oyStruct_s * oyImage_GetPixelData | ( | oyImage_s * | image | ) |
Get the pixel data.
Function oyImage_GetPixelData
int oyImage_GetPixelLayout | ( | oyImage_s * | image, |
oyLAYOUT_e | type | ||
) |
Get the pixel layout.
Function oyImage_GetPixelLayout
Referenced by oyConnectorImaging_s::oyFilterSocket_MatchImagingPlug().
oyImage_GetPoint_f oyImage_GetPointF | ( | oyImage_s * | image | ) |
Get the point function.
Function oyImage_GetPointF
oyProfile_s * oyImage_GetProfile | ( | oyImage_s * | image | ) |
Get the image profile.
Function oyImage_GetProfile
Referenced by oyConnectorImaging_s::oyFilterSocket_MatchImagingPlug().
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
int oyImage_GetSubPositioning | ( | oyImage_s * | image | ) |
Get sub positioning.
Function oyImage_GetSubPositioning
Referenced by oyConnectorImaging_s::oyFilterSocket_MatchImagingPlug().
oyOptions_s * oyImage_GetTags | ( | oyImage_s * | image | ) |
Get object tags.
Function oyImage_GetTags
oyStruct_s * oyImage_GetUserData | ( | oyImage_s * | image | ) |
Get the user data.
Function oyImage_GetUserData
int oyImage_GetWidth | ( | oyImage_s * | image | ) |
Get the width in pixel.
Function oyImage_GetWidth
Referenced by oyPixelAccess_s::oyPixelAccess_Show(), and oyPixelAccess_s::oyPixelAccess_SynchroniseROI().
int oyImage_Init__Members | ( | oyImage_s_ * | image | ) |
Custom Image constructor.
Function oyImage_Init__Members
OYAPI oyImage_s *OYEXPORT oyImage_New | ( | oyObject_s | object | ) |
allocate a new Image object
Function oyImage_New
int oyImage_PixelsToSamples | ( | oyImage_s * | image, |
oyRectangle_s * | pixel_rectangle, | ||
oyRectangle_s * | sample_rectangle | ||
) |
Set rectangle in sample dimension from pixels.
Function oyImage_PixelsToSamples
[in] | image | a image |
[in] | pixel_rectangle | rectangle in pixel unit; optional |
[in,out] | sample_rectangle | rectangle result of image in samples for x,width and pixel for y,height |
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.
[in] | image | a image |
[in] | image_rectangle | rectangle from image, in oyImage_GetWidth() == 1.0 unit; optional |
[in,out] | array | the array to read from |
[in] | array_rectangle | rectangle for array, in oyImage_GetWidth() == 1.0 unit; optional |
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 |
Referenced by oyConnectorImaging_s::oyFilterSocket_MatchImagingPlug().
void oyImage_Release__Members | ( | oyImage_s_ * | image | ) |
Custom Image destructor.
Function oyImage_Release__Members
int oyImage_RoiToSamples | ( | oyImage_s * | image, |
oyRectangle_s * | roi, | ||
oyRectangle_s ** | sample_rectangle | ||
) |
Set sample rectangle from image rectangle.
Function oyImage_RoiToSamples
[in] | image | a image |
[in] | roi | rectangle from image in oyImage_GetWidth() == 1.0 unit; optional |
[in,out] | sample_rectangle | rectangle for sample results in samples for x,width and pixel for y,height |
int oyImage_SamplesToPixels | ( | oyImage_s * | image, |
oyRectangle_s * | sample_rectangle, | ||
oyRectangle_s * | pixel_rectangle | ||
) |
Set rectangle in pixel dimension from samples.
Function oyImage_SamplesToPixels
[in] | image | a image |
[in] | sample_rectangle | rectangle in samples for x,width and pixel for y,height; optional |
[in,out] | pixel_rectangle | rectangle result of image in pixel unit |
int oyImage_SamplesToRoi | ( | oyImage_s * | image, |
oyRectangle_s * | sample_rectangle, | ||
oyRectangle_s ** | roi | ||
) |
Set rectangle in image dimension from samples.
Function oyImage_SamplesToRoi
[in] | image | a image |
[in] | sample_rectangle | rectangle in samples for x,width and pixel for y,height; optional |
[in,out] | roi | rectangle result of image in oyImage_GetWidth() == 1.0 unit |
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.
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 |
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 |
int oyImage_ToFile | ( | oyImage_s * | image, |
const char * | file_name, | ||
oyOptions_s * | opts | ||
) |
write a Oyranos image to a file name
Function oyImage_ToFile
[in] | image | input |
[in] | file_name | output |
[in] | opts | options for file_write node |
int oyImage_WritePPM | ( | oyImage_s * | image, |
const char * | file_name, | ||
const char * | free_text | ||
) |
write buffer to portable pix map format
Function oyImage_WritePPM
[in] | image | the image |
[in] | file_name | a writeable file name, The file can contain "%d" to include the image ID. optional - default is stdout |
[in] | free_text | A text to include as comment. |
oyStruct_Copy_f oyImage_s::copy |
Copy function.
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.