2010-12-16 28 views
5

estoy usando xlib.ahorro xlib XImage a PNG

que tienen una estructura XImage lleno de información de un XGetImage() llamada. ¿Existe un método popular para obtener de XImage algo más significativo ... es decir, PNG?

He mirado libpng, pero he oído de casi todo el mundo que es una bestia de domesticar. ¿Sería este el camino recomendado para tomar?

+0

http://stackoverflow.com/questions/4462958/writing-bitmap-to-string-insted-of-file-or-ximage-to-png –

Respuesta

4

Ver también How to save XImage as bitmap? aunque esa persona tenía la restricción de que no podían utilizar una biblioteca.

Si puede utilizar una biblioteca, El Cairo es una buena que va a hacer esto para usted creo. Tiene PNG guardando el libpng mess para usted, y tiene código para obtener los píxeles de X. Sin embargo, puede hacer que sea difícil obtener píxeles de un XImage; querrá obtenerlos de una ventana o pixmap. Si solo puedes reemplazar tu XGetImage() con cairo, entonces podría funcionar bien. La forma en que lo haría cosas más o menos en El Cairo Creo que es:

También es posible usar la superficie Xlib como fuente de dibuja en una superficie de imagen y luego haz otras cosas con la superficie de la imagen (escala o pintura en él o lo que sea) si lo deseas, antes de guardar como PNG.

Si está utilizando cualquier tipo de interfaz de usuario de juego de herramientas, es probable que tenga código para esto también, por ejemplo, GTK + tiene gdk_pixbuf_get_from_drawable() etc.

+0

gracias! Había visto esa publicación, pero era bastante ignorante al intentar con otra biblioteca por lo que pensé que habría sido una tarea popular. El Cairo parece la respuesta perfecta – digitalfoo