Oyranos Color Management System API - Version 0.9.6
tutorial1.c

Show how to obtain and use a monitor profile.

#include <oyranos.h>
#include <oyConversion_s.h>
#include <stdio.h>
int main( int argc, char ** argv ) {
oyConfigs_s * devices = NULL;
oyConfig_s * monitor = NULL;
oyOptions_s * options = NULL;
oyProfile_s * monitor_icc = NULL;
const char * monitor_icc_dscr = NULL;
// get all monitors
oyDevicesGet( NULL, "monitor", NULL, &devices );
// just pick the first monitor
monitor = oyConfigs_Get( devices, 0 );
/* get XCM_ICC_COLOR_SERVER_TARGET_PROFILE_IN_X_BASE */
"//"OY_TYPE_STD"/config/icc_profile.x_color_region_target", "yes", OY_CREATE_NEW );
oyDeviceGetProfile( monitor, options, &monitor_icc );
// get the profiles internal name
monitor_icc_dscr = oyProfile_GetText( monitor_icc, oyNAME_DESCRIPTION );
printf( "first monitor has profile: %s\n", monitor_icc_dscr );
// now convert some colors from sRGB to monitor space
// find the appropriate profile flags
uint32_t icc_profile_flags =oyICCProfileSelectionFlagsFromOptions( OY_CMM_STD,
"//" OY_TYPE_STD "/icc_color", NULL, 0 );
oyProfile_s * srgb = oyProfile_FromStd( oyASSUMED_WEB, icc_profile_flags, 0 );
float rgb_in[9] = {0,0,0, 0.5,0.5,0.5, 1,1,1};
float rgb_moni[9];
// setup the color context
srgb, rgb_in, OY_TYPE_123_FLOAT,
monitor_icc, rgb_moni, OY_TYPE_123_FLOAT,
NULL, 3 );
// convert by running the conversion graph
// show the source colors and the converted colors
int i;
for(i = 0; i < 3; ++i)
printf("%.02f %.02f %.02f -> %.05f %.05f %.05f\n",
rgb_in[3*i+0],rgb_in[3*i+1],rgb_in[3*i+2], rgb_moni[3*i+0],rgb_moni[3*i+1],rgb_moni[3*i+2]);
return 0;
}
oyOptions_s::oyOptions_SetFromText
int oyOptions_SetFromText(oyOptions_s **obj, const char *registration, const char *value, uint32_t flags)
change a value
Definition: oyOptions_s.c:1514
OY_TYPE_STD
#define OY_TYPE_STD
Definition: oyranos_definitions.h:118
oyConfigs_s
A Configs list.
Definition: oyConfigs_s.h:69
oyNAME_DESCRIPTION
@ oyNAME_DESCRIPTION
Definition: oyranos_core.h:75
oyConfig_s
A group of options for a device.
Definition: oyConfig_s.h:66
oyranos_devices.h
oyICCProfileSelectionFlagsFromOptions
uint32_t oyICCProfileSelectionFlagsFromOptions(const char *db_base_key, const char *base_pattern, oyOptions_s *options, int select_core)
Get valid profile selection flags from node options and fallbacks.
Definition: oyranos_devices.c:3323
oyConversion_s::oyConversion_CreateBasicPixelsFromBuffers
oyConversion_s * oyConversion_CreateBasicPixelsFromBuffers(oyProfile_s *p_in, oyPointer buf_in, oyPixel_t buf_type_in, oyProfile_s *p_out, oyPointer buf_out, oyPixel_t buf_type_out, oyOptions_s *options, int count)
One dimensional color conversion context.
Definition: oyConversion_s.c:304
oyOptions_s
generic Options
Definition: oyOptions_s.h:80
oyProfile_s::oyProfile_GetText
OYAPI const oyChar *OYEXPORT oyProfile_GetText(oyProfile_s *profile, oyNAME_e type)
Get a presentable name.
Definition: oyProfile_s.c:1315
oyranos.h
The API header for general users to include in your application.
oyDevicesGet
OYAPI int OYEXPORT oyDevicesGet(const char *device_type, const char *device_class, oyOptions_s *options, oyConfigs_s **devices)
get all devices matching to a device class and type
Definition: oyranos_devices.c:112
oyConversion_s::oyConversion_RunPixels
int oyConversion_RunPixels(oyConversion_s *conversion, oyPixelAccess_s *pixel_access)
Iterate over a conversion graph.
Definition: oyConversion_s.c:668
oyASSUMED_WEB
@ oyASSUMED_WEB
Definition: oyranos.h:206
oyConversion_s.h
oyConfigs_s::oyConfigs_Get
OYAPI oyConfig_s *OYEXPORT oyConfigs_Get(oyConfigs_s *list, int pos)
get a element of a Configs list
Definition: oyConfigs_s.c:192
oyProfile_s
A profile and its attributes.
Definition: oyProfile_s.h:95
oyDeviceGetProfile
OYAPI int OYEXPORT oyDeviceGetProfile(oyConfig_s *device, oyOptions_s *options, oyProfile_s **profile)
order a device profile
Definition: oyranos_devices.c:805
oyProfile_s::oyProfile_FromStd
OYAPI oyProfile_s *OYEXPORT oyProfile_FromStd(oyPROFILE_e type, uint32_t flags, oyObject_s object)
Create from default color space settings.
Definition: oyProfile_s.c:123
OY_TYPE_123_FLOAT
#define OY_TYPE_123_FLOAT
Definition: oyranos_image.h:157
oyConversion_s
A filter chain or graph to manipulate a image.
Definition: oyConversion_s.h:184
OY_CREATE_NEW
#define OY_CREATE_NEW
Definition: oyOptions_s.h:52
OY_CMM_STD
#define OY_CMM_STD
Definition: oyranos_definitions.h:131