मैं कुछ छवियों को उपयोगकर्ता के स्क्रीन रिज़ॉल्यूशन में बदल रहा हूं; यदि पहलू अनुपात गलत है, तो छवि काटा जाना चाहिए। मेरे कोड इस तरह दिखता है:छवि का आकार बदलना - कभी-कभी बहुत खराब गुणवत्ता?
protected void ConvertToBitmap(string filename)
{
var origImg = System.Drawing.Image.FromFile(filename);
var widthDivisor = (double)origImg.Width/(double)System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
var heightDivisor = (double)origImg.Height/(double)System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
int newWidth, newHeight;
if (widthDivisor < heightDivisor)
{
newWidth = (int)((double)origImg.Width/widthDivisor);
newHeight = (int)((double)origImg.Height/widthDivisor);
}
else
{
newWidth = (int)((double)origImg.Width/heightDivisor);
newHeight = (int)((double)origImg.Height/heightDivisor);
}
var newImg = origImg.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);
newImg.Save(this.GetBitmapPath(filename), System.Drawing.Imaging.ImageFormat.Bmp);
}
ज्यादातर मामलों में, यह ठीक काम करता है। लेकिन कुछ छवियों के लिए, परिणाम है अत्यधिक खराब गुणवत्ता। ऐसा लगता है कि कुछ बहुत छोटे (थंबनेल आकार) में बदल दिया गया था और फिर से बढ़ाया गया .. लेकिन छवि का संकल्प सही है। मैं क्या कर सकता हूँ?
उदाहरण मूल छवि: alt text http://img523.imageshack.us/img523/1430/naturaerowoods.jpg
उदाहरण आकृति परिवर्तन छवि: alt text http://img523.imageshack.us/img523/2531/naturaerowoods.png
नोट: मैं एक WPF अनुप्रयोग है, लेकिन मैं आकार बदलने क्योंकि यह आसान है के लिए WinForms समारोह का उपयोग करें और क्योंकि मैं पहले से ही के लिए एक संदर्भ की जरूरत है एक ट्रे आइकन के लिए System.Windows.Forms।
इस पूछने के लिए धन्यवाद! यह समस्या अभी भी आजकल मौजूद है ... – Andrew