【发布时间】:2009-07-22 16:40:52
【问题描述】:
我正在 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");
目前,它在以下位置严重崩溃:
22 年 9 月 7 日上午 10:23:32 Adobe Photoshop Elements[46628] *** NSCopyMemoryPages(0x0, 0x245f4000, 2265088) 失败
我可能错误地计算了 inData 的大小。帮助?
另外,NSImage 是否能够正确解释该图像数据块?还是我应该放弃它,只对 NSImage 进行逐像素映射?
【问题讨论】:
标签: cocoa plugins photoshop preview