代码之家  ›  专栏  ›  技术社区  ›  N Fard

如何将图像保存到iPhone中的照片中而不丢失质量?

  •  3
  • N Fard  · 技术社区  · 15 年前

    当我使用此方法时,保存的图像质量将丢失。。。

    UIImage *img=imageview1.image;
    UIImageWriteToSavedPhotosAlbum(img,nil,nil,nil);
    
    3 回复  |  直到 15 年前
        1
  •  6
  •   Community CDub    7 年前

    您需要将图像包装为PNG表示形式,以便以PNG格式(而不是JPG格式)将其保存到照片库中。

    我根据本·韦斯的代码使用了以下代码: 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); 
    

        2
  •  3
  •   yonel    15 年前

    功能

    
    NSData * UIImageJPEGRepresentation (
       UIImage *image,
       CGFloat compressionQuality
    );
    
    

    使您能够获取图像的数据表示形式以获得预期的压缩质量(1为最佳)。

    然后,您只需将NSData写入文件系统即可获得JPEG文件(使用 writeToURL:atomically: NSData 例如)。

    对于.PNG,也可以使用 UIImagePNGRepresentation

    原始文件: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIKitFunctionReference/Reference/reference.html#//apple_ref/c/func/UIImageJPEGRepresentation

        3
  •  1
  •   Trenton    15 年前

    我不知道如何在SDK中实现,但是尽管UI,如果您复制并粘贴图像到消息中,它仍然保持完整的大小。也许在SDK中有类似的机制(复制到剪贴板)?不知道。希望能给你个主意。