Comment proportionnelle redimensionnement de l'image de n'importe quel type .NET?
Est possible de redimensionner l'image proportionnellement de manière indépendante du type d'image (bmp, jpg, png, etc)?
J'ai ce code et de savoir que quelque chose est manquant (mais ne savent pas quoi):
public bool ResizeImage(string fileName, string imgFileName,
ImageFormat format, int width, int height)
{
try
{
using (Image img = Image.FromFile(fileName))
{
Image thumbNail = new Bitmap(width, height, img.PixelFormat);
Graphics g = Graphics.FromImage(thumbNail);
g.CompositingQuality = CompositingQuality.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
Rectangle rect = new Rectangle(0, 0, width, height);
g.DrawImage(img, rect);
thumbNail.Save(imgFileName, format);
}
return true;
}
catch (Exception)
{
return false;
}
}
Si pas possible, comment puis-je redimensionner proportionnelle d'une image jpeg?
Je sais que l'utilisation cette méthode, mais vous ne savez pas où mettre ce (!).
8-bits, PNG et Gif images re-quantification et de re-dithering quand redimensionnée (ce qui est non négligeable!). La meilleure solution est d'utiliser une bibliothèque gérée qui est conçu pour gérer tous les formats/edge cas correctement, maintenir le ratio d'aspect, etc. Le ImageResizer bibliothèque est un outil éprouvé pour cette tâche ainsi que le recadrage, la rotation et le retournement. Il est open-source, donc si vous avez envie de rouler votre propre solution, il suffit de copier & coller. Il permet aussi de beaucoup d'autres choses utiles via des plugins, comme le filigrane, la mise en cache disque, sql gouttes, S3 lecture, etc ...
Est venu ici pour améliorer mon home-grown image resizer et découvert Le ImageResizer de la Bibliothèque. C'est une EXCELLENTE. +1 pour Ordinateur Linguiste!
L'url de l'Ordinateur du Linguiste réponse ci-dessus devrait être: imageresizing.net
Est venu ici pour améliorer mon home-grown image resizer et découvert Le ImageResizer de la Bibliothèque. C'est une EXCELLENTE. +1 pour Ordinateur Linguiste!
L'url de l'Ordinateur du Linguiste réponse ci-dessus devrait être: imageresizing.net
OriginalL'auteur eKek0 | 2009-04-01
Vous devez vous connecter pour publier un commentaire.
D'abord et avant tout, vous n'êtes pas à l'accaparement de la hauteur et la largeur de l'image. Pour redimensionner proportionnellement, vous aurez besoin de prendre de la hauteur/largeur de l'image et la redimensionner.
À partir de là, trouver le plus grand attribut et redimensionner proportionnellement sur cette base.
Par exemple, disons que l'image actuelle est de 800 x 600 et tu veux redimensionner proportionnellement dans un rayon de 400 x 400 espace. Prenez la plus grande proportion (800) et je trouve que c'est rapport à la nouvelle taille. 800 -> 400 = .5 Maintenant, prenez ce rapport et de le multiplier par la deuxième dimension (600 * .5 = 300).
Votre nouvelle taille est de 400 x 300.
Voici un PHP par exemple (désolé....vous l'aurez bien)
OriginalL'auteur jerebear
Je pense que ton code est très bien, mais en prenant la largeur et la hauteur en tant que paramètres est où vous allez mal à mon avis. Pourquoi l'appelant de cette méthode doivent décider comment grand ils veulent la largeur et la hauteur? Je suggère de le changer pour un pourcentage de:
Je sais que c'est un ancien commentaire, mais.. je serais personnellement de fournir la largeur ou la hauteur de la contrainte et de maintenir le ratio d'aspect de sorte que les images ne pas obtenir tout déformé. Vous pouvez même juste envie de redimensionner le plus grand de pointe à 50 peu importe si c'est la hauteur ou la largeur.
OriginalL'auteur BFree