2013-05-13 5 views
6

मुझे हल्की तस्वीर के साथ समस्या हो रही है। मुझे पता है कि मैं पिक्सेल के मूल्यों को बढ़ाने/घटाने से ऐसा कर सकता हूं, हालांकि यह वह नहीं है जिसे मैं ढूंढ रहा हूं। मुझे बताया गया है कि एक ऐसा तरीका है जिसे सभी पिक्सेल के माध्यम से पुनरावृत्त करने की आवश्यकता नहीं है और यह बहुत तेज़ है। यह कैसे करना है? धन्यवाद।वास्तव में सभी तस्वीर के पिक्सल के माध्यम से बिना किसी गति के सी # में तस्वीर को कैसे हल्का करें?

+0

उपयोग दिखाया गया है? क्या आपने थोड़ा सा खोज लिया है? यदि आप डब्ल्यूपीएफ का उपयोग करते हैं, तो मुझे यकीन है कि ऐसा कुछ है जो आप कर सकते हैं। –

+0

मैं विंडोज़ फॉर्म का उपयोग कर रहा हूं। – Patryk

+1

शायद तस्वीर पर अर्द्ध पारदर्शी तत्व ओवरले करें? – David

उत्तर

0

चित्रों को चमकने के लिए, आपको हमेशा प्रत्येक पिक्सेल को बदलना होगा (यदि यह वेक्टर आधारित ग्राफ़िक नहीं है)। सभी पिक्सल के माध्यम से पुनरावृत्ति करना मुझे लगता है कि एकमात्र तरीका होना चाहिए। शायद एक ढांचा है जो आपके लिए काम करता है। या आप एक तेज़ एल्गोरिदम की तलाश कर सकते हैं जो पिक्सेल के मैट्रिक्स को उप-पिक्सेल में जोड़ती है। सब कुछ में कई संभावनाएं हैं। छवि प्रसंस्करण एक जटिल विषय है।

आप यहाँ कुछ उदाहरण मिल सकते हैं: http://www.authorcode.com/making-image-editing-tool-in-c-brightness-of-an-image/

6

आप एक उच्च अनुकूलित रास्ते में रंग परिवर्तन लागू करने के लिए System.Drawing कोड में COLORMATRIX वर्ग का उपयोग करें। चमक और विपरीत परिवर्तन जैसे प्रभाव सीधे समर्थित हैं। This web page आपको दिखाता है कि मैट्रिक्स कैसा दिखना चाहिए।

5

एक छवि को हल्का करने के लिए, आप इसे ऊपर एक सफेद धुंध आवेदन कर सकते हैं:

Bitmap bmp = new Bitmap(@"Image.png"); 
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height); 
alpha = 128 
using (Graphics g = Graphics.FromImage(bmp)) { 
    using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.White))) { 
     g.FillRectangle(cloud_brush, r); 
    } 
} 
bmp.Save(@"Light.png"); 

अल्फा मूल्य रेंज कर सकते हैं 0 से 255 0 का मतलब है कि प्रभाव मूल छवि में जिसके परिणामस्वरूप पूरी तरह से पारदर्शी है। 255 का मतलब है कि प्रभाव पूरी तरह से अपारदर्शी होता है जिसके परिणामस्वरूप एक ठोस सफेद आयताकार होता है। इधर, प्रभाव 128.

Lightened Image (Before and After)

साथ दिखाया गया है एक छवि काला कर के लिए, आप इस पर एक काले रंग की धुन्ध आवेदन कर सकते हैं:

Bitmap bmp = new Bitmap(@"Image.png"); 
Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height); 
alpha = 128 
using (Graphics g = Graphics.FromImage(bmp)) { 
    using (Brush cloud_brush = new SolidBrush(Color.FromArgb(alpha, Color.Black))) { 
     g.FillRectangle(cloud_brush, r); 
    } 
} 
bmp.Save(@"Dark.png"); 

अल्फा मूल्य 0 से 255 0 रेंज कर सकते हैं इसका मतलब है कि प्रभाव पूरी तरह पारदर्शी है जिसके परिणामस्वरूप मूल छवि है। 255 का मतलब है कि प्रभाव पूरी तरह से अपारदर्शी होता है जिसके परिणामस्वरूप ठोस काले आयताकार होता है। इधर, प्रभाव के साथ इसके लिए एक पुस्तकालय 128.

Darkened Image (Before and After)

संबंधित मुद्दे