Firemonkey : TBitmap et Jpeg, plus de compression ?
Bonjour,
J'ai un projet sous delphi "classique" qui enregistrait des BMP au format JPEG compressé :
Code:
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:
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é.