Bonjour,

J'essaye de faire une galerie d'image en ligne et pour ce faire j'ai ajouté une fonction me permettant de faire des rotations de 90° sur mes images uploadées

pour ce faire j'utilise ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public static byte[] RotateImage90(byte[] image)
        {
            using (MemoryStream ms = new MemoryStream(image))
            {
                Image img = Image.FromStream(ms);
                SD.Imaging.Encoder enc = SD.Imaging.Encoder.Transformation;
                EncoderParameters encParms = new EncoderParameters(2);
                ImageCodecInfo codecInfo = FindEncoder(ImageFormat.Jpeg);
 
 
                encParms.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
                encParms.Param[0] = new EncoderParameter(enc, (long)EncoderValue.TransformRotate90);
                using (MemoryStream msImage = new MemoryStream())
                {
                    // Save to memory using the Jpeg format
                    img.Save(msImage, codecInfo, encParms);
 
                    img.Dispose();
                    // read to end
                    return msImage.GetBuffer();
                }
            }
        }
le problème c'est qu'a chaque fois que je fait une rotation mon image perd de sa qualité et après quelques rotations celle-ci ne ressemble a grand chose...

Est il possible de re-sauver mon image sans la recompresser et en évitant de passer par le format BMP qui est assez lourd...

Merci d'avance,
Gunth