https://bugs.kde.org/show_bug.cgi?id=281761 -- scaling between channel sizes

Silvio Heinrich plassy at web.de
Mon Sep 19 13:22:00 UTC 2011


On 09/19/2011 10:08 AM, Boudewijn Rempt wrote:
> On Sunday 18 September 2011 Sep, Silvio Heinrich wrote:
>> On 09/18/2011 03:06 PM, Boudewijn Rempt wrote:
>>> hi,
>>>
>>> I'm stuck with this bug... Could someone with adequate templating foo please check my patch and help me out a bit? I get a crash now if I follow the instructions in the bug report exactly.
>>
>> Ok I got it. Now it seems to work.
>> Now just one part is missing.
>> We need to test if the destination colorspace uses floating point
>> channels so that the second part of the "else" part is executed.
>
> Looks good! I think we can skip the check for floating point, though, since KoColorSpaceAbstract isn't used as a base class for floating point colorspaces, we use ctlcs for that. Otherwise, it would be simple enough -- we can check for the type of the first channel, since KoColorSpaceAbstract is guaranteed to be homogenous.
>

I think if we don't need to check for floating point, we shouldn't do it 
and check instead if the destination colorspace is an instance of 
KoColorSpaceAbstract. But I think we should distinguish between signed 
and unsigned integer channels. I attached the patch.
There is one problem: The _Tdst scaleToA(_T a) method in 
KoColorSpaceMath is not generic enough. It refuses to compile with 
certain POD type combinations or gives warnings (what will certainly 
result in malfunctioning). And for me it looks like if this method is 
only able to scale a value up but not down.
The problem is, if we don't have a specialization of this method for a 
certain type, it probably won't give the expected result.

I replaced the code with a more generic version. The code is slower but 
should work for most type combinations.
Maybe you should ask Cyrille first about his opinion.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: convert.patch
Type: text/x-patch
Size: 4940 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kimageshop/attachments/20110919/a6fa0fe8/attachment.patch>


More information about the kimageshop mailing list