[Kde-devel-es] Imágenes con fondo transparente
Antonio Larrosa Jiménez
kde-devel-es@mail.kde.org
Tue, 18 Feb 2003 21:29:37 +0100
El Martes, 18 de Febrero de 2003 20:11, José Luis Sánchez escribió:
> Hola a todos,
>
Hola,
> Necesito hacer una cosa que no veo claramente como enfocarla. Debo
> grabar un fichero '.gif', '.png' o '.jpeg' donde haya dibujado una serie
> de cosas y que el resto del fondo sea transparente, para poder
> utilizarlo en páginas Web a base de layers.
>
> ¿Algiuen tiene una idea de como hacer eso?. Por más vueltas que le d=
oy
Es simple, usa sólo objetos del tipo QImage (de todas formas, dudo que
puedas usar un QPixmap si no usas XWindows :) ), y usa
QImage::setAlphaBuffer( true );
Después, sólo tienes que usar QImage::setPixel( x, y, qRgba( r, g, b, a) );
para poner cada pixel fácil y rápidamente.
En cualquier caso, yo te recomendaría que no usaras setPixel porque es
rápido de programar, es el método más lento (a la hora de ejecutarse,
aunque si haces la prueba y te va bien, tú verás :) ).
Lo mejor es que uses QImage::scanLine( y ); para coger un puntero a donde
empiezan los datos de la linea y-ésima, y escribir tú mismo los valores de
los píxeles de esa linea usando algo como:
for ( int x=0, QRgb *pixel=image.scanLine(y) ; x<width; x++, pixel++)
*pixel=qRgba( r, g, b, a);
(Eso es suponiendo que tu imagen es de 32 bits)
> a la doc de la Qt no veo forma de hacerlo. Ah!, eso es importante, ahora
> mismo estoy trabajando con Qt, no con KDE. No lo hago con KDE por la
> sencilla razón de que en la máquina que ha de funcionar el programa =
no
> tiene KDE (es un Solaris 8) y el proceso habrá de ejecutarse desde un
> cron sin interacción con el usuario.
Por la interacción con el usuario no te preocupes, el usar KApplication (al
igual que el usar QApplication) tampoco necesita un servidor X
funcionando. Aunque lo de que sea un Solaris, supongo que dificulta el
encontrar paquetes de KDE. En cualquier caso, si Qt te ofrece toda la
funcionalidad que necesitas, tampoco hay necesidad de usar KDE.
Saludos,
--
Antonio Larrosa Jimenez
KDE developer - larrosa@kde.org
http://developer.kde.org/~larrosa/
Language is the map. Ideas are the territory. The map is not the territory.