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

aivils at latnet.lv aivils at latnet.lv
Tue Mar 3 01:02:10 PST 2009


Citēju hd <h.dupont65 at laposte.net>:

>
> 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.
> >

It is done in the xloadimage source:
ftp://ftp.x.org/R5contrib/xloadimage.4.1.tar.gz

Aivils

> thanks a lot for your help.
> regards





More information about the xorg mailing list