我想在临时文件夹中保存一些元数据更改的图像,而不重新编码实际的图像数据.
我发现能够做到这一点的唯一方法是ALAssetsLibrary/writeImageDataToSavedPhotosAlbum:metadata:completionBlock:但是,这个将图像保存到照片库.相反,我想将图像保存到临时文件夹(例如,通过电子邮件共享它,而不填充照片库).
我尝试过使用CGImageDestinationRef(CGImageDestinationAddImageFromSource),但它只能使用解码图像创建,这意味着它在保存时会重新编码(测试时,像素字节看起来不同).
除了使用CGImageDestinationRef?还有其他可用于iOS的方法/类可以保存图像数据和元数据吗?对于变通方法的建议也会受到欢迎.
在CGImageDestinationRef Apple的参考文献中,它提到It can contain thumbnail images as well as properties for each image.具有属性的部分很好,通过properties在添加图像时设置参数CGImageDestinationRef,但我无法弄清楚如何添加缩略图.
我想添加一个缩略图(或直接从a传递CGImageSourceRef)CGImageDestinationRef,这样当打开结果图像时,CGImageSourceRef我可以使用它CGImageSourceCreateThumbnailAtIndex来检索原始缩略图.
NSDictionary* thumbOpts = [NSDictionary dictionaryWithObjectsAndKeys:
(id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailWithTransform,
(id)kCFBooleanFalse, (id)kCGImageSourceCreateThumbnailFromImageIfAbsent,
[NSNumber numberWithInt:128], (id)kCGImageSourceThumbnailMaxPixelSize,
nil];
CGImageRef thumb = CGImageSourceCreateThumbnailAtIndex(iSource, 0, (CFDictionaryRef)thumbOpts);
Run Code Online (Sandbox Code Playgroud)
上面的代码返回存储它的图像的缩略图,但是当我通过图像时CGImageDestinationRef,缩略图会丢失.
有没有办法保留原始缩略图(或创建一个新缩略图)?CGImageProperties Reference似乎没有任何键来存储缩略图.
是否可以在(测试)目标设置或测试.pch文件中定义宏,以便将其传递给整个应用程序?
或者是否有任何宏可用于检查(来自代码)我们是否正在运行测试?
例如:
#if TEST=1
// do something
#else
// do something else
#endif
Run Code Online (Sandbox Code Playgroud)
我想要这个的原因是在测试期间跳过一些代码,断言等(每次我运行测试时都不必在主应用程序.pch中更改#define).
谢谢.