TBitmap.SaveToFile : fichier parfait sous Linux et image noire sous Windows XP
Voilà, c'est toujours moi.
Et je vis des trucs qui me prennent des heures et des heures quand chez d'autres c'est torché en 5 minutes...
Ah mais moi je suis sous Lazarus, c'est un poème, et j'essaye d'avoir des choses qui fonctionnent dans Linux et dans Windows, oui, je sais, je suis fou.
La preuve :
Code:
1 2 3 4 5 6 7
| Bmp.SaveToFile('_Fullbmp_avant.bmp');
with imgMiniature do begin
StretchBmp(Bmp, Picture.Bitmap, Width, Height); // proc à Thierry
Canvas.Draw(0,0, Picture.Bitmap); // ligne nécessaire pour enregistrement ok dessous, sinon image noire
Picture.Bitmap.SaveToFile('_imgmini.bmp');
end;
Bmp.SaveToFile('_Fullbmp_apres.bmp'); |
Le Bmp étant rempli par un système de copie d'écran, je le considère d'autant plus valide que les 3 lignes ci-dessus me génèrent 3 fichiers parfaits sous Linux.
Et juste un seul correct sous Windows, à la ligne 5 ! Les deux autres sont à la bonne taille mais pleins de noir.
Comment cela est-il possible ?, puisque le Bmp est le même !
Et aussi, comment corriger ça ?
Car, oui, j'ai bien défini avant utilisation le PixelFormat à pf24bit, j'ai bien utilisé SetSize, je ne vois pas quoi faire de plus, surtout que, je le répète, sous Linux c'est parfait...
Mais bon, si je commente la ligne 4 (qui recopie img.Picture.Bitmap dans img.Canvas) alors l'enregistrement de img.Picture ensuite va lui aussi générer une image noire, comme si les choses fonctionnaient à l'envers : lisez bien le commentaire au milieu.
:koi: