Re: Affinity Photo and colorsync issue, maybe
Re: Affinity Photo and colorsync issue, maybe
- Subject: Re: Affinity Photo and colorsync issue, maybe
- From: edward taffel <email@hidden>
- Date: Mon, 28 Mar 2016 11:10:44 -0400
> On Mar 27, 2016, at 3:27 AM, Graeme Gill <email@hidden> wrote:
>
> edward taffel wrote:
>
>> i gather then, you claim superior precision, & this may account for ben’s superior
>> results; but, what of the ‘edge cases’ ben mentions? are these obviated by precision?
>
> I'm not sure where you gather any such thing from my general statement
> about CMM’s.
please don’t get me wrong, graeme: i view ben’s comments as very encouraging, & assumed your general statement an intimation of possible rationale for
“ArgyllCMS is so far superior to anything and everything else out there”.
> Ben will have to explain what he implies by "edge cases" - that term
> could apply to a multitude of different aspects of color management.
>
>> i have found that colorsync may fail to match a color it reported out-of-gamut, i.e.
>> transforms the coordinates, but the transformed color remains out-of-gamut.
>
> You'll have to be more precise in what you are referring to.
>
> Reported to be out of gamut using what operation ?
>
> Transformed in what direction - device to PCS, PCS to device, what ?
colorsync is negotiated [by a programmer] via
ColorSyncTransformConvert
the operation is configured in the first argument, ColorSyncTransformRef, created by
CSEXTERN ColorSyncTransformRef ColorSyncTransformCreate (CFArrayRef profileSequence, CFDictionaryRef options);
/*
* profileSequence - array of dictionaries, each one containing a profile object and the
* information on the usage of the profile in the transform.
*
* Required keys:
* ==============
* kColorSyncProfile : ColorSyncProfileRef
* kColorSyncRenderingIntent : CFStringRef defining rendering intent
* kColorSyncTransformTag : CFStringRef defining which tags to use
* Optional key:
* =============
* kColorSyncBlackPointCompensation : CFBooleanRef to enable/disable BPC
*
* options - dictionary with additional public global options (e.g. preferred CMM, quality,
* etc... It can also contain custom options that are CMM specific.
*
* returns ColorSyncTransformRef or NULL in case of failure
*/
in my example the profile sequence was:
1) source -> kColorSyncTransformDeviceToPCS
2) kColorSyncTransformPCSToDevice -> destination
to get the gamut-check operation assign kColorSyncTransformGamutCheck to kTransformTagKey in the destination transform dictionary.
>> can you enlighten us as to the handling of ‘edge cases’?
>
> Precisely what do you mean by edge cases ?
i don’t mean anything by it; ben mentioned
>>> Graeme instead has put insane amounts of time into investigating edge cases, figuring out why this-or-that is close but not perfect, and so on.
i assumed edge a synonym for boundary [perhaps falsely]. i understand boundary to mean geometry [convex hull] containing a color space: a boundary case, e.g., when a cmm attempts to transform [clip] a color into destination gamut but hits just outside or on the boundary.
best regards,
edward
> Graeme Gill.
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Colorsync-users mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Colorsync-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden