[fpc-devel] Correlation between TFPColor and RGB values (possible inconsistencies)

Luiz Americo Pereira Camara luizmed at oi.com.br
Wed Feb 17 10:52:25 CET 2010


Mattias Gaertner escreveu:
> On Wed, 17 Feb 2010 04:39:26 -0300
> Luiz Americo Pereira Camara <luizmed at oi.com.br> wrote:
>
>   
>> Mattias Gaertner escreveu:
>>     
>>> On Tue, 16 Feb 2010 17:15:37 -0300
>>> Luiz Americo Pereira Camara <luizmed at oi.com.br> wrote:
>>>
>>>   
>>>       
>>>> or
>>>>
>>>> colGray be redefined as colGray       : TFPColor = (Red: $8080; Green: 
>>>> $8080; Blue: $8080; Alpha: alphaOpaque) ??
>>>>     
>>>>         
>>> Yes, although this rarely makes a difference.
>>>   
>>>       
>> It does.
>> See below.
>>
>>     
>>>  
>>>   
>>>       
>>>> This info will help to fix http://bugs.freepascal.org/view.php?id=15793
>>>>     
>>>>         
>>> IMO the bug report is misleading. Converting a TFPColor to RGB looses
>>> bits. 
>>>       
>> The bug is not about converting to RGB. See the attached example in 
>> bugreport.
>>
>>   SetCol := colGray;
>>   Img.Colors[0,0] := SetCol;
>>   GetCol := Img.Colors[0,0];
>>
>>   SetCol <> GetCol
>>     
>
> That's exactly what my long response explained. 
> Why do you expect that the 48bit color constants can be assigned to
> 24bit images without loss? Is this somewhere wrongly documented?
>   

fpimage is not documented at all AFAIK.

It's not loosing bits if your information, in previous mail, about 
TFPColor format is correct.

Defining colGray, and related, as TFPColor = (Red: $8080; Green: $8080; 
Blue: $8080; Alpha: alphaOpaque) would make it work.

The point is that the TFPColor constants are inconsistently defined.

Luiz



More information about the fpc-devel mailing list