Bonjour,

(cette nouvelle discussion part d'un court échange dans le fil du composant TGifViewer, mais pour ne pas le polluer je redémarre ici, avec un soupçon d'édition des échanges.)

Je voulais voir comment réagit le TFastBitmap proposé par BeanzMaster avec un .bmp mal formé, et la conclusion que j'en tire est la suivante : à gauche avec un TBitmap, à droite avec le TFastbimap (qui "rend" comme un TLazInftImage), en bas au milieu le viewer de Linux.

Nom : tbitmap_vs_tfastbitmap2.png
Affichages : 750
Taille : 130,4 Ko

Réponse intégrale de BeanzMaster recopiée ici pour comprendre la suite :
Citation Envoyé par BeanzMaster Voir le message
Je ne sais pas comment tu charges les BMP, mais il faut que tu fasses attention à l'ordre des composantes de couleur. Dans les fichiers BMP les couleurs sont codée au format BGR TFastBitmap sous linux est au format RGBA. Il faut donc inverser le Rouge et Bleu (procedure SwapRB) ou le faire dans ta procédure de chargement. Note le bmp que tu nous montre "FondRVB.Bmp" n'est pas mal formé c'est Lazarus qui le lit mal. Et comme je te l'ai dis jette un oeil dans BZImageFileBMP.pas que je t'ai passé. Je l'ai justement blindé de commentaires parce que j'en ai ch.... Tu y trouveras plein d'informations qui t'aideront, j'en suis sure avec ce format qui semble pourtant facile à prendre en charge. Il reste encore quelques erreurs notamment avec la compression RLE dans certain cas ou je ne gère pas les erreurs d'encodage correctement et quelques couleurs que je n'ai pas inversé (surtout les bmp os22x 8bits)

Si tu veux des BMP bizarres et hors normes à tester : https://github.com/jdelauney/BMP-ImageTestSuite
J'ai écrit "mal formé" dans le titre, Jérome n'est pas d'accord mais je ne vois pas quoi mettre d'autre, on en parle dans la suite...