Transformation image JPEG
Bonjour,
je cherche à enregistrer une image au format jpeg, à partir d'un fichier original que je pivote de 270°, (soit 90° antihoraire), sous VB.net 2010.
Pour ce faire, j'utilise les classes GDI+ du Framework, à savoir les classes de System.Drawing, objet Bitmap et méthode Save.
Mon soucis est que le format de couleur original n'est pas conservé.
En effet, l'image d'origine est codé en YCbCr 4:4:4, mais après rotation et sauvegarde dans un autre fichier, le format de couleurs devient YCbCr 4:2:0...
Ce qui est ennuyeux pour le décompresseur hardware que nous utilisons...
Je remarque également, que la compression est plus forte que celle du fichier original, j'arrive cependant à l'améliorer en utilisant le paramètre Quality de l'encoder...
Extrait du Code utilisé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
image = New System.Drawing.Bitmap("FirstImage.jpeg")
myImageCodecInfo = GetEncoderInfo(System.Drawing.Imaging.ImageFormat.Jpeg)
myEncoder = System.Drawing.Imaging.Encoder.Transformation
myEncoderParameters = New System.Drawing.Imaging.EncoderParameters(1)
'Transformation
myEncoderParameter = New System.Drawing.Imaging.EncoderParameter(myEncoder, Fix(System.Drawing.Imaging.EncoderValue.TransformRotate270))
myEncoderParameters.Param(0) = myEncoderParameter
image.Save("SecondImage.jpg", myImageCodecInfo, myEncoderParameters) |
J'avais d'abord utilisé la méthode image.RotateFlip puis Save au format Jpeg, mais le problème reste le même.
Comment puis-je faire ma rotation en conservant tous les paramètres de compression et de format de couleur du fichier original?
Merci d'avance pour votre aide.
Eric