Oyranos Color Management System API
Public Types | Public Member Functions | Data Fields
oyImage_s Struct Reference

A reference struct to gather information for image transformation. More...

#include <oyImage_s.h>

Inheritance diagram for oyImage_s:
Inheritance graph
Collaboration diagram for oyImage_s:
Collaboration graph

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_soyImage_Create (int width, int height, oyPointer channels, oyPixel_t pixel_layout, oyProfile_s *profile, oyObject_s object)
 collect infos about a image More...
 
oyImage_soyImage_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_soyImage_GetProfile (oyImage_s *image)
 Get the image profile. More...
 
oyOptions_soyImage_GetTags (oyImage_s *image)
 Get object tags. More...
 
oyStruct_soyImage_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_soyImage_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...
 
- Public Member Functions inherited from oyStruct_s
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...
 
- Data Fields inherited from oyStruct_s
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...
 

Detailed Description

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().

dot_inline_dotgraph_10.png

Should oyImage_s become internal and we provide a user interface?

Version
Oyranos: 0.1.8
Since
2007/11/00 (Oyranos: 0.1.8)
Date
2008/08/23

Member Typedef Documentation

◆ oyImage_GetPoint_f

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

Parameters
[in,out]imagethe image object
[in]point_xthe data location in x direction
[in]point_ythe data location in y direction
[in]channelthe 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_allocatedare the points always newly allocated?
Version
Oyranos: 0.1.8
Since
2008/06/26 (Oyranos: 0.1.8)
Date
2008/06/26

◆ oyImage_SetPoint_f

typedef int(* oyImage_SetPoint_f) (oyImage_s *image, int point_x, int point_y, int channel, oyPointer data)

pixel setter

Typedef oyImage_SetPoint_f

Parameters
[in,out]imagethe image object
[in]point_xthe data location in x direction
[in]point_ythe data location in y direction
[in]channelthe nth channel will is requested -1 means to request all channels, note that can be an expensive call for non continous pixel layouts
[out]datathe data to be copied into the image
Version
Oyranos: 0.1.8
Since
2008/06/26 (Oyranos: 0.1.8)
Date
2008/06/26

Member Function Documentation

◆ oyImage_Copy()

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.

Parameters
[in]imageImage struct object
objectNULL - 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_Create()

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.

Parameters
[in]widthimage width
[in]heightimage height
[in]channelspointer to the data buffer
[in]pixel_layouti.e. oyTYPE_123_16 for 16-bit RGB data
[in]profilecolor space description
[in]objectthe optional base
Version
Oyranos: 0.1.8
Since
2007/11/00 (Oyranos: 0.1.8)
Date
2008/08/23

References oyOBJECT_IMAGE_S.

Referenced by oyConversion_s::oyConversion_CreateBasicPixelsFromBuffers(), oyConversion_CreateFromImage(), oyFilterPlug_s::oyFilterPlug_ResolveImage(), and oyImage_CreateForDisplay().

◆ 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

Parameters
[in]widthimage width
[in]heightimage height
[in]channelspointer to the data buffer
[in]pixel_layouti.e. oyTYPE_123_16 for 16-bit RGB data
[in]display_namedisplay name
[in]display_pos_xleft image position on display
[in]display_pos_ytop image position on display
[in]display_widthwidth to show in window
[in]display_heightheight to show in window
[in]objectthe optional base
Since
Oyranos: version 0.1.8
Date
october 2007 (API 0.1.8)

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().

◆ oyImage_FillArray()

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.

Parameters
[in]imagethe image
[in]rectanglethe image rectangle in a relative unit a rectangle in the source image
[in]allocate_method
  • 0 assign the rows without copy
  • 1 do copy into the array
  • 2 allocate empty rows
[out]arrayarray to fill; If array is empty, it is allocated as per allocate_method
[in]array_rectanglethe 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]objthe optional user object
Version
Oyranos: 0.9.0
Date
2012/10/20
Since
2008/10/02 (Oyranos: 0.1.8)

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.

◆ oyImage_GetArray2dLineContinous()

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.

Version
Oyranos: 0.1.8
Date
2008/08/21
Since
2008/08/23 (Oyranos: 0.1.8)

Referenced by oyImage_SetCritical().

◆ oyImage_GetArray2dPointContinous()

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.

See also
oyImage_GetPoint_f()
Version
Oyranos: 0.9.5
Date
2013/07/21
Since
2008/06/26 (Oyranos: 0.1.8)

References oyCHAN0, oyCHANS, and oyDATA_SIZE.

Referenced by oyImage_SetCritical().

◆ oyImage_GetChannelType()

oyCHANNELTYPE_e oyImage_GetChannelType ( oyImage_s image,
int  pos 
)

Get a channel type.

Function oyImage_GetChannelType

Version
Oyranos: 0.5.0
Since
2012/09/05 (Oyranos: 0.5.0)
Date
2012/09/05

References oyOBJECT_IMAGE_S.

◆ oyImage_GetHeight()

int oyImage_GetHeight ( oyImage_s image)

Get the width in pixel.

Function oyImage_GetHeight

Version
Oyranos: 0.5.0
Since
2009/03/05 (Oyranos: 0.1.10)
Date
2012/06/12

References oyOBJECT_IMAGE_S.

Referenced by oyConversion_CreateFromImage(), oyImage_PixelsToSamples(), and oyPixelAccess_s::oyPixelAccess_Create().

◆ oyImage_GetLineF()

oyImage_GetLine_f oyImage_GetLineF ( oyImage_s image)

Get the Line function.

Function oyImage_GetLineF

Version
Oyranos: 0.5.0
Since
2012/09/05 (Oyranos: 0.5.0)
Date
2012/09/05

References oyOBJECT_IMAGE_S.

◆ oyImage_GetPixelData()

oyStruct_s * oyImage_GetPixelData ( oyImage_s image)

Get the pixel data.

Function oyImage_GetPixelData

Version
Oyranos: 0.5.0
Since
2012/09/05 (Oyranos: 0.5.0)
Date
2012/09/05

References copy, and oyOBJECT_IMAGE_S.

◆ oyImage_GetPixelLayout()

int oyImage_GetPixelLayout ( oyImage_s image,
oyLAYOUT_e  type 
)

Get the pixel layout.

Function oyImage_GetPixelLayout

See also
oyPixel_t
Version
Oyranos: 0.5.0
Since
2009/03/05 (Oyranos: 0.1.10)
Date
2012/09/05

References oyOBJECT_IMAGE_S.

Referenced by oyConversion_CreateFromImage(), and oyImage_PixelsToSamples().

◆ oyImage_GetPointF()

oyImage_GetPoint_f oyImage_GetPointF ( oyImage_s image)

Get the point function.

Function oyImage_GetPointF

Version
Oyranos: 0.5.0
Since
2012/09/05 (Oyranos: 0.5.0)
Date
2012/09/05

References oyOBJECT_IMAGE_S.

◆ oyImage_GetProfile()

oyProfile_s * oyImage_GetProfile ( oyImage_s image)

Get the image profile.

Function oyImage_GetProfile

Version
Oyranos: 0.5.0
Since
2009/08/05 (Oyranos: 0.1.10)
Date
2012/06/12

References oyOBJECT_IMAGE_S, and oyProfile_s::oyProfile_Copy().

Referenced by oyConversion_CreateFromImage().

◆ oyImage_GetSetLineF()

oyImage_SetLine_f oyImage_GetSetLineF ( oyImage_s image)

Get the Line function.

Function oyImage_GetSetLineF

Version
Oyranos: 0.9.5
Since
2013/07/22 (Oyranos: 0.9.5)
Date
2012/07/22

◆ oyImage_GetSetPointF()

oyImage_SetPoint_f oyImage_GetSetPointF ( oyImage_s image)

Get the point function.

Function oyImage_GetSetPointF

Version
Oyranos: 0.9.5
Since
2013/07/22 (Oyranos: 0.9.5)
Date
2012/07/22

References oyOBJECT_IMAGE_S.

◆ oyImage_GetSubPositioning()

int oyImage_GetSubPositioning ( oyImage_s image)

Get sub positioning.

Function oyImage_GetSubPositioning

Version
Oyranos: 0.5.0
Since
2012/09/05 (Oyranos: 0.5.0)
Date
2012/09/05

References oyOBJECT_IMAGE_S.

◆ oyImage_GetTags()

oyOptions_s * oyImage_GetTags ( oyImage_s image)

Get object tags.

Function oyImage_GetTags

Version
Oyranos: 0.5.0
Since
2009/03/05 (Oyranos: 0.1.10)
Date
2012/06/12

References oyOBJECT_IMAGE_S, and oyOptions_s::oyOptions_Copy().

◆ oyImage_GetUserData()

oyStruct_s * oyImage_GetUserData ( oyImage_s image)

Get the user data.

Function oyImage_GetUserData

Version
Oyranos: 0.5.0
Since
2012/09/05 (Oyranos: 0.5.0)
Date
2012/09/05

References copy, and oyOBJECT_IMAGE_S.

◆ oyImage_GetWidth()

int oyImage_GetWidth ( oyImage_s image)

Get the width in pixel.

Function oyImage_GetWidth

Version
Oyranos: 0.5.0
Since
2009/03/05 (Oyranos: 0.1.10)
Date
2012/06/12

References oyOBJECT_IMAGE_S.

Referenced by oyConversion_CreateFromImage(), oyImage_PixelsToSamples(), and oyPixelAccess_s::oyPixelAccess_Create().

◆ oyImage_New()

OYAPI oyImage_s *OYEXPORT oyImage_New ( oyObject_s  object)

allocate a new Image object

Function oyImage_New

References oyOBJECT_OBJECT_S.

◆ oyImage_PixelsToSamples()

int oyImage_PixelsToSamples ( oyImage_s image,
oyRectangle_s image_rectangle,
oyRectangle_s pixel_rectangle 
)

Set sample rectangle from image rectangle.

Function oyImage_PixelsToSamples

Parameters
[in]imagea image
[in]image_rectanglerectangle from image, optional
[in,out]pixel_rectanglerectangle for pixel results
Returns
error
Version
Oyranos: 0.5.0
Date
2012/10/05
Since
2009/03/13 (Oyranos: 0.1.10)

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().

◆ 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.

Version
Oyranos: 0.1.10
Since
2009/02/28 (Oyranos: 0.1.10)
Date
2009/02/28

References oyCHANS, oyDataTypeGetSize(), oyImage_PixelsToSamples(), oyLAYOUT, oyOBJECT_IMAGE_S, oyOBJECT_RECTANGLE_S, oyRectangle_s::oyRectangle_Show(), oyToDataType_m, and oyUINT8.

◆ oyImage_Release()

OYAPI int OYEXPORT oyImage_Release ( oyImage_s **  image)

release and possibly deallocate a oyImage_s object

Function oyImage_Release

Parameters
[in,out]imageImage struct object

References oyOBJECT_IMAGE_S.

Referenced by oyConversion_s::oyConversion_CreateBasicPixelsFromBuffers(), oyFilterPlug_s::oyFilterPlug_ResolveImage(), and oyPixelAccess_s::oyPixelAccess_SetOutputImage().

◆ oyImage_SetArray2dPointContinous()

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.

See also
oyImage_SetPoint_f()
Version
Oyranos: 0.9.5
Date
2013/07/21
Since
2009/02/22 (Oyranos: 0.1.10)

References oyCHAN0, oyCHANS, oyDATA_SIZE, oyDataTypeGetSize(), oyLAYOUT, oyToChannels_m, and oyToDataType_m.

Referenced by oyImage_SetCritical().

◆ 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.

Parameters
[in,out]imagethe image
[in]pixel_layoutthe new layout or pass 0
[in]profileassign a new profile reinterprets color, optional
[in]tagsnew tags, replace any old tags, optional
[in]widthnew width or pass -1
[in]heightnew height or pass -1
Returns
error
Version
Oyranos: 0.5.0
Date
2012/09/25
Since
2007/12/19 (Oyranos: 0.1.8)

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.

◆ oyImage_SetData()

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.

Parameters
imagethe image
pixel_datadata struct will be moved in
getPointinterface function
getLineinterface function
getTileinterface function
setPointinterface function
setLineinterface function
setTileinterface function
Returns
error
Version
Oyranos: 0.1.8
Since
2008/08/23 (Oyranos: 0.1.8)
Date
2008/08/23

Referenced by oyImage_SetCritical().

Field Documentation

◆ copy

oyStruct_Copy_f oyImage_s::copy

Copy function.

Referenced by oyImage_GetPixelData(), and oyImage_GetUserData().

◆ oy_

oyObject_s oyImage_s::oy_

Oyranos internal object.

Features name and hash. Do not change during object life time.

◆ release

oyStruct_Release_f oyImage_s::release

Release function.

◆ type_

const oyOBJECT_e oyImage_s::type_

Type of object.

The struct type tells Oyranos how to interprete hidden fields.

Referenced by oyImage_PixelsToSamples().