[gtkada] HELP avec la palete de coleurs

JOL 181873 at cienz.unizar.es
Mon Mar 3 20:52:01 CET 2003


Bonjour je suis espagnol, j'espere que vous pouvez m'aider:
Comment est ce que je peux load la palete avec tous les coleurs de un fichier 
.BMP (256 coleurs) ou trouver la palete a partir de un Pixbuf qui aie load ce  
fichier?
J'ai ecrit un peu de code:
--...................................................................................................................................
type color is 
	record
		red,green,blue :integer;
	end record;
type tipo_paleta is array(0..255) of color;
--...................................................................................................................................
	procedure Convierte(P :Gdk_Pixbuf;Paleta :tipo_paleta;Divisor :Float) is

        B :Gdk.Rgb.Rgb_Buffer_Access;
 	Color :Gdk.Color.Gdk_Color;
        Pos :Integer;
        Bits :Gint:=Get_Bits_Per_Sample(P);
        Canales :integer:=Integer(Get_N_Channels(P));
        W :integer:=Integer(Get_Width(P));
        H :Integer:=Integer(Get_Height(P));

	begin
       	B:=Get_Pixels(P);

      	for i in 0..(W-1024/W)*Canales
      	loop
        	for j in 0..(H-1024/H)*Canales
         	loop
         		if I mod Canales=0 then Pos:=I*w+J;
         		elsif I mod Canales=1 then Pos:=I*W+J+W;
         		elsif I mod Canales=2 then Pos:=I*W+J+2*W;
         		end if;         				   	      
Set_Rgb(Color,Gushort(Float(Paleta(B(Pos+1024)).red)*65535.0/divisor),              	             
                    Gushort(Float(Paleta(B(Pos+1024)).Green)*65535.0/divisor),
                    Gushort(Float(Paleta(B(Pos+1024)).blue)*65535.0/divisor));

                    Point(Float(J/Canales),Float(I/Canales),Color);
		    --point dessine un point dans l'ecran
         	end loop;
      	end loop;
	end;
--...................................................................................................................................
Avec cet code je reussi a dessiner la figure correctement mais pas les 
coleurs, ils sont totalement mauvais.
Comment est ce que je peux trouver la palete?, Divisor est 63 o 254?
Merçi beaucoup.
En attendant votre aimable reponse, je vous souhaite joie....et fraternité.
JOL.



More information about the gtkada mailing list