2010-03-31 16 views
0

J'essaie de comprendre pourquoi, après avoir recadré une image dans .NET, je me retrouve avec une image 3 fois plus grande que l'image originale. Ci-dessous est le code que je utilise pour recadrer l'imageImposer des images sans perte avec .NET

Private Shared Function CropImage(ByVal img As Image, ByVal cropArea As Rectangle) As Image 
     Dim bmpImage As Bitmap = New Bitmap(img) 
     Dim bmpCrop As Bitmap = bmpImage.Clone(cropArea, img.PixelFormat) 
     Return CType(bmpCrop, Image) 
    End Function 

où img est l'image originale chargée de fichier dans un objet image.

Comment puis-je obtenir une perte moins de recadrage de mon image?

Répondre

1

Jetez un oeil à la deuxième réponse à cette question:

High Quality Image Scaling Library

Ce code devrait aider. Le problème est que la bibliothèque de gestion d'image .NET définit par défaut le paramètre System.Drawing.Imaging.Encoder.Quality sur 100%, ce qui correspond littéralement à trois fois la taille de 90%, ce qui n'a aucune différence visible en termes de qualité. Utilisez le code dans cette question pour enregistrer votre image à des paramètres de qualité inférieure et vous devriez voir une grande différence dans la taille de votre fichier.

+0

Cela fonctionne! Je vous remercie! – ak3nat0n