如何将图像保存到 iPhone 中的照片而不损失质量?
Posted
技术标签:
【中文标题】如何将图像保存到 iPhone 中的照片而不损失质量?【英文标题】:how to save Image to Photos in iPhone without losing quality? 【发布时间】:2010-03-08 23:02:33 【问题描述】:当我使用这种方法时,保存的图像质量会下降......
UIImage *img=imageview1.image;
UIImageWriteToSavedPhotosAlbum(img,nil,nil,nil);
【问题讨论】:
【参考方案1】:您需要将图像包装在 PNG 表示中,以便以 PNG 格式而不是 JPG 格式将其保存到照片库中。
我使用以下代码基于 Ben Weiss 的代码:UIImageWriteToSavedPhotosAlbum saves to wrong size and quality 进行并排比较。
// Image contains a non-compressed image stored within my Documents directory
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
NSData* imdata = UIImagePNGRepresentation ( image );
UIImage* im2 = [UIImage imageWithData:imdata];
UIImageWriteToSavedPhotosAlbum(im2, nil, nil, nil);
图像将以 PNG 格式保存在照片库中,以便以后可以以完整质量访问/共享。
【讨论】:
【参考方案2】:函数
NSData * UIImageJPEGRepresentation (
UIImage *image,
CGFloat compressionQuality
);
使您能够获取图像的数据表示以获得预期的压缩质量(1 是最好的)。
然后您只需将 NSData 写入文件系统即可获取 JPEG 文件(例如,在 NSData
上使用 writeToURL:atomically:
)。
UIImagePNGRepresentation
也可以应用于 .PNG。
原始文档: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIKitFunctionReference/Reference/reference.html#//apple_ref/c/func/UIImageJPEGRepresentation
【讨论】:
NSData* imageData = UIImagePNGRepresentation(img1);我通过 NSData 得到我的照片。如何保存在照片中?【参考方案3】:我不知道如何在 SDK 中执行此操作,但通过 UI,如果您将图像复制 + 粘贴到消息中,它会保持其完整大小。也许 SDK 中有类似的机制(复制到剪贴板)?不知道。希望它能给你一个想法。
【讨论】:
【参考方案4】:使用时:
UIImageWriteToSavedPhotosAlbum(img,nil,nil,nil);
压缩质量约为0.75
image?.jpegData(compressionQuality: 0.75)
自己试试看。 ?
【讨论】:
以上是关于如何将图像保存到 iPhone 中的照片而不损失质量?的主要内容,如果未能解决你的问题,请参考以下文章
将表示图像的 NSMutableData 保存到 iPhone 照片库
如何仅获取保存在iphone应用程序文档文件夹中的所有照片名称