Ano*_*dya 12 macos cocoa nsimage uiimage ios
我正在从我的OSX应用程序创建一个包含一些图像的plist.我正在写图像:
[NSKeyedArchiver archivedDataWithRootObject:self.someImage]
Run Code Online (Sandbox Code Playgroud)
然后我使用这个plist文件作为iOS应用程序的模板,但在这里我无法将文件转换为UIImage也不能NSImage(因为这仅适用于OSX).
我收到此错误:
*由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'* - [NSKeyedUnarchiver decodeObjectForKey:]:无法解码类的对象(NSImage)'
请建议我一种方法来执行上述操作.
Jos*_*man 22
OS X:
而不是使用NSKeyedArchiver转换NSImage为NSData,使用NSImage的TIFFRepresentation方法:
NSData *imageData = [self.someImage TIFFRepresentation];
// save imageData to file
Run Code Online (Sandbox Code Playgroud)
iOS:
从文件中读取图像数据,然后使用UIImage的+imageWithData:便捷构造函数将其转换为UIImage :
NSData *imageData = ...; // load imageData from file
UIImage *image = [UIImage imageWithData: imageData];
Run Code Online (Sandbox Code Playgroud)
您需要创建一个NSBitmapImageRep,然后保存该,然后阅读NSData到UIImage与+[UIImage imageWithData:]:
首先在 OS X 中,保存数据:
NSString *filepath;
NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithContentsOfFile:filepath];
NSData *data = [imageRep representationUsingType:NSPNGFileType properties:nil];
// Save the data
Run Code Online (Sandbox Code Playgroud)
imageRepWithData:如果您已经拥有NSData图像,您也可以使用- 以上将从文件中加载它(就像您也可以使用NSImage)。
然后在iOS中:
NSData *data; // Load from a file
UIImage *image = [UIImage imageWithData:data];
Run Code Online (Sandbox Code Playgroud)
请参阅此处了解representationUsingType:properties:.
| 归档时间: |
|
| 查看次数: |
13463 次 |
| 最近记录: |