J'essaie de recadrer une image et de l'enregistrer sur le serveur. Le problème que je suis est qu'il semble que le processus de culture que je suis a un effet secondaire sur les images jpeg et jpg. La méthode-processus que j'essaie est légèrement différente de celle que j'ai trouvée dans de nombreux articles sur le recadrage d'une image dans asp.net parce que j'utilise un octet [] pour l'image.Recadrer l'image avec des graphiques dans Visual Studio modifie les en-têtes de type de fichier
public static byte[] CropImage(byte[] imgBytes, Rectangle rec)
{
MemoryStream ms = new MemoryStream(imgBytes);
Image img = Image.FromStream(ms);
Bitmap croppedBmpImage = new Bitmap(200, 200);
using (Graphics gr = Graphics.FromImage(croppedBmpImage))
{
gr.SmoothingMode = SmoothingMode.HighQuality;
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(img, new Rectangle(0, 0, 200, 200),
rec,
GraphicsUnit.Pixel);
}
ImageConverter converter = new ImageConverter();
byte[] result = (byte[]) converter.ConvertTo(croppedBmpImage, typeof(byte[]));
croppedBmpImage.Dispose();
return result;
}
L'image est recadrée correctement sans aucun problème d'aperçu sur mon ordinateur. Cependant j'utilise Alfresco pour stocker les images et je vois que l'aperçu de la vignette à l'intérieur de l'application ne fonctionne pas avec l'image. D'après ce que j'ai vu, cela n'arrive qu'aux images .jpg et .jpeg. D'après ce que je lis les images .jpg et .jpeg stockent des métadonnées à l'intérieur de celles-ci qui semblent être supprimées de mon image recadrée. Lorsque j'ouvre l'image .jpg ou .jpeg d'origine avec le bloc-notes, je remarque qu'elle commence avec un certain nombre de détails de métadonnées tels que JFIF. (Ψΰ JFIF H H Ϋ «) D'autre part, quand je l'ouvre avec notepad une image .png Je remarque qu'il commence par
‰PNG
Mon image recadrée commence comme ça aussi après le processus de culture. Est-il possible de conserver les métadonnées d'origine ou de rogner une image en tant que fichier .jpg depuis le début ou est-ce que je manque quelque chose d'autre ici?
Alors qu'est-ce qui se passera si vous enregistrez l'image sans rogner? Est-ce que ça fonctionne correctement? – SeM
Si je n'utilise pas le processus de recadrage cela fonctionne correctement oui. Il ne perd aucune métadonnée et les aperçus d'image correctement dans Alfresco. –
Pourquoi auriez-vous besoin de conserver ces données, cependant? L'image elle-même est recadrée de toute façon, de sorte que vous perdez des données. – Nyerguds