Jai voulu tester TLazIntfImage, me disant "on ne sait jamais..."
On va sans doute penser que j'y mets de la mauvaise volonté mais je suis
tout simplement parti d'un bout de code
trouvé dans le wiki, et ça donne ça :
1- d'abord le bout copié/collé est foireux, ça commence bien :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| procedure TForm1.Button1Click(Sender: TObject);
var
b: TBitmap;
t: TLazIntfImage;
begin
b := TBitmap.Create;
if opd.Execute then // ajout
try
b.LoadFromFile(opd.FileName);
t := b.CreateIntfImage;
// Read and/or write to the pixels
// t.Colors[10,20] := colGreen; // erreur sur colGreen (l'original), erreur sur clGreen (pour essai rapide) -- heureusement, je n'en ai pas besoin pour ce test.
b.LoadFromIntfImage(t);
img.Canvas.Draw(0,0, b); // ajout
finally
t.Free;
b.Free;
end;
end; |
2- ensuite je rajoute juste un TOpenPictureDialog (opd) et un TImage (img), je choisis le fichier "maudit" et voilà ce que ça donne :
à gauche dans le prog de test et à droite un afficheur quelconque de Linux, pour comparer.
C'est vraiment à vomir, quoi...
D'aucuns diront que c'est à cause du fichier d'origine qui a un souci, c'est possible (
on en a causé là aujourd'hui), mais alors comment expliquer que la miniature de ce fichier sur le bureau soit bonne, que ça soit ok dans le visionneur comme ci-dessus et que The Gimp et ImageMagick l'ouvrent sans problèmes ?
Le souci est clairement dans le camp de Lazarus/FreePascal, et je n'ai pas les compétences pour dépatouiller cet énorme morceau.
Partager