2009-09-29 8 views
0

Je Redéfinition d'images mises en ligne comme suit:Taille du fichier lorsque vous redimensionnez avec GDI +

var bmPhoto = new Bitmap(width, height, PixelFormat.Format16bppRgb555); 

using (var grPhoto = Graphics.FromImage(bmPhoto)) 
{ 
    grPhoto.SmoothingMode = SmoothingMode.HighSpeed; 
    grPhoto.CompositingQuality = CompositingQuality.HighSpeed; 
    grPhoto.InterpolationMode = InterpolationMode.Low; 
    grPhoto.DrawImage(sourceImage, new Rectangle(destX, destY, destWidth, destHeight), 
         new Rectangle(0, 0, sourceWidth, sourceHeight), GraphicsUnit.Pixel); 
} 

Comment puis-je limiter la taille du fichier résultant afin qu'il ne soit plus que, disons, 3KB? Je télécharge un JPG 1024x768 qui est 768KB. Lors du redimensionnement à 100x100 avec le code ci-dessus, je ne peux pas l'obtenir plus petit que 12KB.

+0

Une exigence étrange, avez-vous essayé de le redimensionner en utilisant un autre outil pour voir si 3KB est réalisable à 100x100 ou avez-vous juste besoin de le rendre plus petit, disons 64x64? – Lazarus

Répondre

0

Vous pouvez essayer de jouer avec la propriété quality, mais il existe un moyen de savoir quelle est la taille de l'image résultante. Vous pouvez également essayer d'enregistrer le fichier en tant que png, qui fonctionne mieux pour les images non-photo (graphiques)

+0

Je ne pense pas que je peux baisser la qualité sans passer à 8 bits. Malheureusement, ce sont des photos. –

+0

@Mark Richman, si vous ne pouvez pas baisser la qualité plus loin alors la question devient théorique. 12KB est le meilleur que vous allez faire à ce niveau de qualité et de taille. – Lazarus

1

Le code redimensionner n'est pas ce que vous devez regarder. Jetez un oeil au niveau de compression jpeg lorsque vous faites votre Bitmap.Save().

3kb est complètement faisable avec une image 100x100. Si vous obtenez 12 Ko, vous économiserez probablement le format JPEG avec la compression JPEG de la plus haute qualité.

Here est un article MSDN sur la façon de définir le niveau de compression lors de l'enregistrement du bitmap.

Questions connexes