how to display a XImage with 16bits depth in a drawable with a depth of 24bits ?

hd h.dupont65 at laposte.net
Mon Mar 2 06:03:43 PST 2009


Glynn Clements a écrit :
> hd wrote:
>
>   
>> I my app, I receive a raw image in 16 bits depth.
>> My defaut visual have a depth of 24 bits (and all other Visual have 24 
>> or 32bits depth on my X server).
>>
>> To display the bitmap I try to create an XImage with XCreateImage() and 
>> display it with XPutImage().
>> But X displays a "bad match" error
>>
>> If I try to display a "raw image" with the same depth (24bits) as the 
>> visual (24bits), my app works.
>>
>> Question : XImage APIs (XCreateImage() / XPutImage() / ...) can convert 
>> 'on the fly' the depth of the bitmap to match the visual depth
>> or must I convert myself the raw bitmap to match the visual depth ? 
>> (convert each pixel from 16bits to 24 bits)
>>     
>
> You must convert yourself, or use a higher-level interface. The core X
> protocol doesn't do format conversions.
>
> If you want the conversion to be done in hardware, look at OpenGL or
> XRender. It's implementation-dependent whether either of these
> supports a specific format (other than 24-bit RGB), so you still need
> to provide a software conversion.
>   
thanks a lot for your help.
regards





More information about the xorg mailing list