से UiImage बनाएं नीचे दिया गया कोड मैंने कॉपी किया है (इस साइट से) और मूल कोड संकलित नहीं होने के बाद से केवल थोड़ा संशोधित किया गया है। मैं किनारे का पता लगाने और रंगों में अंततः सरल परिवर्तन के लिए बाइट सरणी में हेरफेर करना चाहता हूं, लेकिन पहले मैं मूल कोड काम करना चाहता था। वर्तमान में, सिस्टम संकलित और चलाता है। यह स्क्रीन पर एक बुरी तरह से खींचा हाथी प्रदर्शित करता है। जब मैं छवि को छूता हूं, तो यह गायब हो जाता है। छवि के माध्यम से कदम 0x0 के रूप में imageWithData के परिणाम दिखाता है। मैंने इसे एक पीएनजी और बीएमपी दोनों के साथ करने की कोशिश की है और उसी परिणामNSData
मैं क्या गलत कर रहा हूं इसके लिए कोई संकेत?
@interface ImageViewDrawable : UIImageView
// I am using the following code to initialize this ImageView
ImageViewDrawable * uiv = [[ImageViewDrawable alloc] initWithImage:[UIImage imageNamed:@"ele.png"] ];
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// get and work on pixel data
NSData* pixelData = (NSData*) CGDataProviderCopyData(CGImageGetDataProvider(self.image.CGImage));
char* bytes =[pixelData bytes];
// Take away the red pixel, assuming 32-bit RGBA
for(int i = 0; i < [pixelData length]; i += 4) {
bytes[i] = bytes[i]; // red
bytes[i+1] = bytes[i+1]; // green
bytes[i+2] = bytes[i+2]; // blue
bytes[i+3] = bytes[i+3]; // alpha
}
// convert pixel back to uiiimage
NSData* newPixelData = [NSData dataWithBytes:bytes length:[pixelData length]];
char * bytes2 =[pixelData bytes];
UIImage * newImage = [UIImage imageWithData:newPixelData] ;
[self setImage: newImage ];
}
तो इससे कोई फर्क नहीं पड़ता कि मैं जो डेटा खा रहा हूं वह अनिवार्य रूप से मौजूदा यूआईएममेज से आया है? –
मुझे मेरी समस्या दिखाई देती है। कॉल का यह नेस्टेड सेट - CGDataProviderCopyData (CGImageGetDataProvider()) - डेटा प्रदाता प्राप्त करता है, और उसके बाद बस डेटा कॉपी करता है। जिसका अर्थ है कि मैं सिर्फ पिक्सल प्राप्त कर रहा हूं और मूल छवि से बाकी कॉन्फ़िगरेशन नहीं। तो मुझे उन पिक्सल और सीजी सूचना का उपयोग करके एक छवि को फिर से बनाना होगा जिसे आपने संदर्भित किया है। मदद के लिए फिर से धन्यवाद –