मैं बहुत तरह 24bit आरजीबी डेटा की एक अहस्ताक्षरित चार * से एक NSImage बनाने हूँ:कोको स्मृति प्रबंधन जब initWithBitmapDataPlanes का उपयोग कर NSImage
NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc]
initWithBitmapDataPlanes:(unsigned char **)&data
pixelsWide:gWidth
pixelsHigh:gHeight
bitsPerSample:8
samplesPerPixel:3
hasAlpha:NO
isPlanar:NO
colorSpaceName:NSCalibratedRGBColorSpace
bytesPerRow:gWidth*3
bitsPerPixel:24];
NSImage *img = [[NSImage alloc] initWithSize:NSMakeSize(gWidth, gHeight)];
[img addRepresentation:bitmap];
समस्या मैं आ रही
मैं बाद में अधिक सामान लिख रहा हूँ वह यह है कि 'डेटा' के लिए और मुझे पता है कि एनएसआईमेज इसकी एक प्रति नहीं बना रहा है। मैं कहता हूं कि क्योंकि अगर मैं बाद में अपने डेटा बफर में सभी 0 लिखता हूं तो छवि सभी काले हो जाती है।
मैं उद्देश्य सी के साथ संघर्ष कर रहा हूं इसलिए यदि यह छोटा है तो मेरे साथ सहन करें।
मैं 'डेटा' और कभी मुक्त यह तो बातें अच्छी तरह से काम करते हैं, लेकिन स्पष्ट रूप से लीक की स्थानीय प्रतिलिपि करते हैं:
unsigned char *copy_of_data = new unsigned char[len];
memcpy(copy_of_data, data, len);
मैं या तो कर सकते हैं कैसे:
(1) बनाने initWithBitmapDataPlanes बनाने अपनी खुद की प्रतिलिपि और deallocation संभाल?
या (2) छवि के बाद उचित होने पर डेटा को स्वयं मुक्त करें, अब इसकी आवश्यकता नहीं है?
ओह! मैंने यह खो दिया। मैं इसे एक भंवर दे दूंगा और देख सकता हूं कि यह काम करता है या नहीं। – spartygw
यह पूरी तरह से काम करता है! आपका बहुत बहुत धन्यवाद। – spartygw