2010-03-31 9 views
9

मेरे पास एक छवि है जो 240x320 (पोर्ट्रेट में आईफोन कैमरा छवि) है, और मुझे प्रोग्रामेटिक रूप से (सी # में) को पूर्ण छवि आकार 320x320 तक बढ़ाने के लिए सफेद "बार" जोड़ने की आवश्यकता है। मैं छवि को स्केल नहीं करना चाहता क्योंकि यह पहलू अनुपात को गड़बड़ कर देगा।सी # छवि व्हाइटस्पेस

मुझे सी # के साथ सफेद सलाखों को हटाने के बारे में बहुत सारी जानकारी मिली है, लेकिन उन्हें जोड़ने के बारे में कुछ भी नहीं है। मैं नुकसान में हूँ। क्या किसी के पास कोई इनपुट है जो मुझे सही दिशा का नेतृत्व कर सकता है?

धन्यवाद एक गुच्छा, ब्रेट

उत्तर

4

इच्छित आकार का एक नया खाली सफेद बिटमैप बनाएँ और यह पर छोटी छवि Blit।

0

मूल रूप से आवश्यक आयाम के साथ एक नया बिटमैप बनाएं, इसे इच्छित रंग से साफ़ करें और फिर छोटे बिटमैप को खींचें ताकि यह लंबवत केंद्रित हो।

12
using (System.Drawing.Image src = System.Drawing.Image.FromFile("picture.jpg")) 
{ 
     using (Bitmap bmp = new Bitmap(320, 320)) 
     { 
       Graphics g = Graphics.FromImage(bmp); 
       g.Clear(Color.White); 
       g.DrawImageUnscaled(src, 60, 0, 240, 320); 
       bmp.Save("file.jpg", ImageFormat.Jpeg); 
     } 
} 

उपयोग के बाद वस्तु निपटान के लिए याद रखें;)

+0

बहुत बढ़िया! बहुत बहुत धन्यवाद! – Brett

+0

@ मैटी के उत्तर के लिए कोड। मती के लिए +1 !! – kenny

+4

यह निपटान को संभालने के लिए उपयोग कथन के लिए एक अच्छा उम्मीदवार है। ईजी। का उपयोग (बिटमैप बीएमपी = नया बिटमैप (320, 320)) { // ... } –

0

यहाँ, एक महान लिंक जहां एक और अधिक सामान्यीकृत दृष्टिकोण छवियों का आकार और सफेद सलाखों जोड़ने के लिए वर्णन किया गया है या तो शीर्ष पर या (के आधार तल पर छवि अभिविन्यास) c# Image resizing to different size while preserving aspect ratio