[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