È possibile ridimensionare l'immagine in modo proporzionale in modo indipendente dal tipo di immagine (bmp, jpg, png, ecc.)?Come ridimensionare proporzionalmente l'immagine di qualsiasi tipo in .NET?
Ho questo codice e so che manca qualcosa (ma non so cosa):
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;
}
}
Se non è possibile, come si può immagine proporzionale jpeg I ridimensionare?
So che usando this method, ma non so dove mettere questo (!).
8-bit richiedono ri-quantizzazione e ri-dithering quando viene ridimensionata (che non è banale!). La soluzione migliore è utilizzare una libreria gestita progettata per gestire correttamente tutti i formati/edge case, mantenere le proporzioni, ecc. [La libreria ImageResizer] (http://imageresizingin.net/) è uno strumento collaudato per questa attività così come ritagliare, ruotare e lanciare. È open source, quindi se hai voglia di rotolare la tua soluzione, copia e incolla. Permette anche molte altre cose utili tramite plugin, come watermarking, caching del disco, blob sql, lettura S3, ecc. –
È venuto qui per migliorare il mio resizer di immagini e ho scoperto The ImageResizer Library. È ECCELLENTE. +1 per Computer Linguist! – Chris
L'url nella risposta di Computer Linguist sopra dovrebbe essere: http://imageresizing.net/ – glenatron