Bonjour,

J'ai un projet sous delphi "classique" qui enregistrait des BMP au format JPEG compressé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Jpg:=Tjpegimage.Create; // Jpg = creation d'une image JPG
jpg.CompressionQuality:=80; // Compression
jpg.Assign(Bitmap); // ici c'était un vcl.graphics.TBitmap !
jpg.SaveToFile(gc_jpgpath); // Enregistrer
Jpg.Free;
Sous FireMonkey, pour la plateforme Mac OSX, le vcl.graphics.TBitmap et le Vcl.Imaging.jpeg.TJPEGImage ne sont plus utilisables.

On utilise donc à la place le FMX.Types.TBitmap. Or il permet d'enregistrer directement au format JPEG. Le code précédent devient alors :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Bitmap.SaveToFile(gc_jpgpath, 'JPEG'); // Fmx.Types.TBitmap ici !
Bien, merveilleux apparemment, puisqu'on a remplacé 5 lignes de code par une seule.

Oui MAIS : Quand les fichiers enregistrés par la première méthode pesaient 15Ko en moyenne, les mêmes fichiers enregistrés par la seconde méthode pèsent plus de 120 Ko !

Or la taille de moins de 20Ko pour les jpeg est une des contraintes imposées par le projet.

Question : Comment préciser le taux de compression lors de l'enregistrement en jpeg d'un FMX.Types.TBitmap ?

Je ne vois aucune propriété ou méthode dans les Fmx.Types.TBitmap pour faire ça, et aucune classe FMX pour les jpeg....

André.