.net - Resizing image programmatically in C# -
संभव डुप्लिकेट:
मैं प्रोग्राम को एक छवि को सी # में कैसे बदल सकता हूँ, ताकि इसे किसी विनम्र नियंत्रण में फिट किया जा सके?
एक चित्र बॉक्स में स्केलिंग:
<प्री> वर्ग ImageHandling {सार्वजनिक स्थिर आयत GetScaledRectangle (छवि इमेज, आयत थंबरकाट) {if (img.Width & lt; thumbRect.Width & amp; amp; और img.Height & lt ; ThumbRect.Height) नया आयत (thumbRect.X + ((thumbRect.Width - img.Width) / 2), thumbRect.Y + ((thumbRect.Height - img.Height) / 2), आईएमजी वाईडथ, आईएमजी लौटें ।ऊंचाई); Int sourceWidth = img.Width; Int sourceHeight = img.Height; फ्लोट एनपरेंट = 0; नाव nPercentW = 0; नाव nPercentH = 0; NPercentW = ((फ्लोट) अंगूठे का संदर्भ दें। वाइड / (फ्लोट) स्रोतव्यूथ); NPercentH = ((फ्लोट) thumbRect.Height / (फ्लोट) स्रोत हैइट); यदि (nPercentH & lt; nPercentW) nPercent = nPercentH; अन्य nPercent = nPercentW; Int destWidth = (int) (sourceWidth * nPercent); Int devHeight = (int) (sourceHeight * nPercent); अगर (destWidth.Equals (0)) destWidth = 1; यदि (destHeight.Equals (0)) destHeight = 1; आयत retract = नया आयत (thumbRect.X, thumbRect.Y, destWidth, destHeight); If (retrect.Height & lt; thumbRect.Height) retRect.Y = retract.Y + कन्वर्ट। ToInt32 (((फ्लोट) अंगूठे का निशान। हाइट - (फ्लोट) रेट्रैक्ट। हाइट) / (फ्लोट) 2); If (retrect.Width & lt; thumbRect.Width) retRect.X = retRect.X + कन्वर्ट.ToInt32 ((फ्लोट) thumbRect.Width - (फ्लोट) retrect.Width) / (फ्लोट) 2); वापसी retrect; } सार्वजनिक स्थिर छवि GetResizedImage (छवि img, आयत rect) {बिटमैप बी = नया बिटमैप (rect.Width, rect.Height); ग्राफिक्स जी = ग्राफिक्स.फ्रेमइज़ेज़ ((छवि) बी); जी। इंटरपालेशन मोड = इंटरपोलेशनमोड। हाईक्वाइव बाइब्यूबिक; G.DrawImage (आईएमजी, 0, 0, रीक्ट। वाइड, रीक्ट। हाइट); g.Dispose (); कोशिश {वापसी (छवि) बी। क्लोन (); } अंत में {बी.डिसज (); बी = नल; जी = नल; }}}
और उसका उपयोग कैसे करें:
छवि img = Image.FromFile (imageFilePath); आयत newRect = गेटस्केल्ड रेकेटैंगल (आईएमजी, पिक्चरबॉक्स 1। क्लाइंट रेक्टांगल); चित्रबॉक्स 1। छवि = छविहैंडलिंग.गेटरिसिज्ड इमेज (आईएमजी, नयाआरएक्ट);
Comments
Post a Comment