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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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');
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.
Partager