Objective c 合并2个图像并保存它们
我试图在Cocoa中合并两个不同的图像,并希望将结果图像保存在我的应用程序中。到目前为止,我所做的是:Objective c 合并2个图像并保存它们,objective-c,cocoa,Objective C,Cocoa,我试图在Cocoa中合并两个不同的图像,并希望将结果图像保存在我的应用程序中。到目前为止,我所做的是: -(void)mergeImage:(NSImage*)target withImage:(NSImage*)source { [target lockFocus]; NSPoint aPoint; aPoint.x = 1; aPoint.y = 1; [source drawAtPoint:aPoint fromRect:NSZeroRect op
-(void)mergeImage:(NSImage*)target withImage:(NSImage*)source {
[target lockFocus];
NSPoint aPoint;
aPoint.x = 1;
aPoint.y = 1;
[source drawAtPoint:aPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
[target unlockFocus];
NSBitmapImageRep *bmpImageRep = [[NSBitmapImageRep alloc]initWithData:[target TIFFRepresentation]];
[target addRepresentation:bmpImageRep];
NSData *data = [bmpImageRep representationUsingType: NSPNGFileType
properties: nil];
NSURL* aURL = [[NSBundle mainBundle] bundleURL];
NSString *tmpPathToFile = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@/tempImage.png", aURL]];
[data writeToFile:tmpPathToFile atomically:YES];
}
我没有收到任何错误,捆绑包的URL似乎是正确的。而“数据”的容量约为2,9MB 2985448
正如前面提到的,不允许写入应用程序包。
但是,您可以写入应用程序支持文件夹。这就是它的用途。不允许(或不应该)写入应用程序包。他们被封起来是有原因的哦,好吧。这意味着临时数据也必须进入应用程序支持文件夹?@mightym这取决于您称之为临时的内容。如果它确实是临时的,可以在计算机关闭后删除,那么您可以使用一个特殊的临时目录。使用
NSTemporaryDirectory()代码>。或者,如果这是你的应用程序稍后将要使用的内容,你需要将其保存在应用程序支持文件夹中。啊,太好了!我不知道像NSTemporaryDirectory这样的东西存在。非常感谢您的支持!