Yes, it's me again, avec encore un truc de malade, mais alors comme ça, je n'avais jamais vu...

Dans un programme trouvé chez efg, il est question de remplir un TBitmap (qui a comme petit nom BitmapHS, "HS" parce que "HSV", chez efg on fait dans le trifouillage de couleurs) avec des données, puis de le faire afficher dans un TImage.

Rien d'anormal et j'en vois certains qui se demandent qu'est-ce que j'ai bien encore pu prendre ce midi...
Attendez, ne partez pas, c'est là que ça devient rigolo : entre l'appel à la fonction (à qui on passe les paramètres qui vont bien) et l'instruction suivante qui consiste à afficher les données, si j'insère un BitmapHS.SaveToFile('bmptest.BMP'); , hé bien, selon certains paramètres (que je maîtrise, genre PixelFormat à 24 ou 32 bits, déclarés bien en amont) le fichier contient un magnifique cercle coloré :
Nom : test.jpg
Affichages : 688
Taille : 10,6 Ko
(oui oui, ce fichier a été créé par code, sinus, cosinus, scanline, toussa toussa...)

La question c'est : pourquoi je n'ai rien dans mon TImage ? Des fois j'ai une image blanche, des fois noire, des fois grise en fonction de certains paramètres, mais ce rainbow circle, makkache bono...

J'ai essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
ImageHS.Canvas.Draw(0, 0, BitmapHS); // original
ImageHS.Picture.Assign(BitmapHS);
ImageHS.Picture.Graphic := BitmapHS; 
BitmapHS.Canvas.StretchDraw(rect, ImageHS.Picture.Graphic );
et je n'ai jamais vu ce cercle qui est présent dans le BitmapHS.

Je récapitule : dans une proc j'appelle une fonction en lui passant des paramètres.
Au retour (si j'ai bien choisi ma configuration) je crée un fichier impeccable à partir du bitmap et ensuite je le fais afficher dans le Timage.
Sauf que l'affichage est à la rue...
Et àmha ça ne peut pas être un problème dans le bitmap puisque le fichier est bon...

Une dernière info à tomber par terre : dans le zip il y avait un .exe créé avec D3 (200 ko, une misère, une honte, même ), qui... fonctionne parfaitement sous XP
À ceux qui supposeraient que je me suis foutu dedans avec mon scanline, je rappelle que le scanline a généré la magnifique image 10 lignes plus haut !

Si quelqu'un a une idée, ou veut des précisions, qu'il n'hésite pas car là, je suis sec, moi...