【问题标题】:how to save Image to Photos in iPhone without losing quality?如何将图像保存到 iPhone 中的照片而不损失质量?
【发布时间】:2010-03-08 23:02:33
【问题描述】:

当我使用这种方法时,保存的图像质量会下降......

UIImage *img=imageview1.image;
UIImageWriteToSavedPhotosAlbum(img,nil,nil,nil);

【问题讨论】:

    标签: iphone cocoa-touch image


    【解决方案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)
        

        自己试试看。 ?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-26
          • 1970-01-01
          • 2010-09-15
          • 2013-04-18
          • 2014-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多