[Pluto-help] Re: Aiuto su GTK+

Germano Rizzo manomano a ciaoweb.it
Mar 30 Gen 2001 16:48:12 CET


Ciao!:)
    Se a qualcuno potesse interessare, la soluzione stava nel chiamare

gint gdk_imlib_render(GdkImlibImage* pic, gint w, gint h)

sulle immagini, prima di tentare di estrarre le pixmap... per l'esattezza,
poi,

GdkPixmap* gdk_imlib_move_image(GdkImlibImage* img);

estrae la pixmap (con o senza l'alpha? boh),

GdkBitmap* gdk_imlib_move_mask(GdkImlibImage* img);

estrae invece l'alpha channel.
    Mano :)

----- Original Message -----
From: "Germano Rizzo" <manomano a ciaoweb.it>
To: <pluto-help a lists.pluto.linux.it>
Sent: Tuesday, January 30, 2001 12:42 PM
Subject: Aiuto su GTK+


| Ciao!
|     c'è qualcuno che mi sa rispondere? Sto facendo un programmuccio con le
| GTK+ per Gnome, e avrei bisogno di usare dei pixmap trasparenti come
| widget... non è questo il problema, sennonché avrei anche bisogno di
| cambiare le zone trasparenti di volta in volta; per cui ho pensato di
tenere
| un unica immagine con l'immagine (sorry), e una bitmap con la maschera
della
| trasparenza, e poi unirle... ora, sto cercando una funzione che mi
permetta
| questo, ma non la trovo... :( Gnome-pixmap prevede un membro mask, ma non
di
| modificarlo,a quanto pare; basterebbe farlo da Imlib, ma neanche là c'è
| nulla... gtk_pixmap ha un costruttore che prevede qualcosa di simile,
|
| GtkWidget gtk_pixmap_new(GdkPixmap *a, GdkBitmap *b)
|
| e se ho le due immagini in questione in png, posso caricarle da ImLib...
per
| cui avevo pensato a qualcosa di simile...
|
| [...]
|
| GtkWidget *pix;
| GdkImlibImage *img,*msk;
| GdkPixmap *pixmap;
| GdkBitmap *bitmap;
|
| img=gdk_imlib_load_image("a.png");
| msk=gdk_imlib_load_alpha("b.png"); [oppure load_image, FWIW]
|
| pixmap=gdk_imlib_move_image(img); [o copy_image, ai fini del
| bitmap=gdk_imlib_move_mask(msk); ["non-risultato" è lo stesso
|
|  pix=gtk_pixmap_new(pixmap,bitmap);
|
| [...]
|
| con ovviamente tutti gli annessi e connessi... si compila bene, senza
| messaggi di errore; ma se lo lancio, mi dà
|
| Gtk-CRITICAL **: file gtkpixmap.c: line 97 (gtk_pixmap_new): assertion
`val
| != NULL' failed
|
| Perché?? Premetto che i file png ci sono e i nomi son giusti, e b.png ha 2
| colori... ho anche provato con
|
| [...]
| pix=gnome_pixmap_new_from_imlib(img);
| pix->mask=bitmap;
| [...]
|
| Ma mi dice  che non c'è un membro "mask"... mentre invece nel listato
| dell'header c'è! Ok, l'ultima cosa qui è un po' ingenua... ma mi pare
strano
| che sia GTK che Imlib non prevedano di poter caricare l'alpha channel
| separatamente, e non da XPM ma da un file esterno...
|     Qualcuno ha qualche idea?
|         Grazie,
|             Mano :)
|
|





More information about the pluto-help mailing list