मैं मूल छवि से पहलू अनुपात को संरक्षित करते हुए एक छवि का आकार बदलने की कोशिश कर रहा हूं, ताकि नई छवि न दिखे।
उदाहरण के लिए:
150 * 100 छवि को 150 * 150 छवि में परिवर्तित करें।
ऊंचाई के अतिरिक्त 50 पिक्सेल को एक सफेद पृष्ठभूमि रंग के साथ गद्देदार करने की आवश्यकता होती है।
यह वर्तमान कोड है जिसका मैं उपयोग कर रहा हूं।
यह आकार बदलने के लिए अच्छी तरह से काम करता है लेकिन मूल छवि के पहलू अनुपात को बदलकर नई छवि को नष्ट कर देता है।
private void resizeImage(string path, string originalFilename,
int width, int height)
{
Image image = Image.FromFile(path + originalFilename);
System.Drawing.Image thumbnail = new Bitmap(width, height);
System.Drawing.Graphics graphic =
System.Drawing.Graphics.FromImage(thumbnail);
graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphic.SmoothingMode = SmoothingMode.HighQuality;
graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphic.CompositingQuality = CompositingQuality.HighQuality;
graphic.DrawImage(image, 0, 0, width, height);
System.Drawing.Imaging.ImageCodecInfo[] info =
ImageCodecInfo.GetImageEncoders();
EncoderParameters encoderParameters;
encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality,
100L);
thumbnail.Save(path + width + "." + originalFilename, info[1],
encoderParameters);
}
संपादित करें: मैं फसली के बजाय छवि को गद्देदार करना चाहता हूं