我在 Mac 上实现了一个 Photoshop 插件,我正在使用 Cocoa 来实现。到目前为止一切正常,但下一步是提供“预览”图像,作为我的插件窗口的一部分,我被卡住了。我是一个 n00b Obj-C 程序员,这并没有真正的帮助:-)
到目前为止,我有这样的事情:
int dataSize = gFilterRecord->bigDocumentData->wholeSize32.v *
gFilterRecord->bigDocumentData->wholeSize32.h *
gFilterRecord->planes;
NSData *inData = [[NSData alloc] initWithBytesNoCopy:gFilterRecord->inData length:dataSize freeWhenDone:NO];
NSLog(@"LoadImageFromSDK : Data created");
NSImage *imageTmp = [[NSImage alloc] initWithData:inData];
NSLog(@"LoadImageFromSDK : Image created");
//Save to PNG file as a test of this image creation
[[imageTmp TIFFRepresentation] writeToFile:@"/tmp/imageTmp.tif" atomically:YES];
NSLog(@"LoadImageFromSDK : Wrote image to disk");
目前,它在以下时间严重崩溃:
09/07/22 上午 10:23:32 Adobe Photoshop Elements[46628] *** NSCopyMemoryPages(0x0, 0x245f4000, 2265088) 失败
我可能错误地计算了 inData 的大小。帮助?
此外,NSImage 是否能够正确解释该图像数据块?还是我应该放弃它,只在 NSImage 中进行逐像素映射?