cocoa-touch - 上传图片问题(UIImageJPEGRepresentation vs UIImagePNGRepresentation)

标签 cocoa-touch ios-simulator

我在模拟器中使用 Safari 的“保留 + 保存图像”选项将一些图片存储到我的照片库中。当我从库中选择图像时,我必须将其转换为 JPEG 或 PNG,以便将其上传到服务器。问题是原始图像的大小约为 200 KB,但转换为 PNG 后的图像约为 2 MB。我正在使用 UIImagePNGRepresentation转换 UIImage反对 NSData然后发布图像。

  • 我在这里缺少什么?为什么图片的尺寸变得比原来的尺寸大?我怎样才能防止这种情况?
  • UIImageJPEGRepresentation有什么区别和 UIImagePNGRepresentation ?应该使用哪一种(推荐)?
  • 我可以确定从照片库加载的图像类型吗?
  • iPhone 相机拍摄的默认图像类型是什么?
  • 最佳答案

    我猜原始图像存储为 JPEG。

    PNG 设计用于存储屏幕截图和线条图等内容。它不是为存储照片之类的东西而设计的。

    这一切都取决于所使用的压缩类型,PNG 使用无损压缩,因此图像将与原始图像完全相同。 JPEG 使用有损压缩,生成的图像是原始图像的近似值。

    如果您采用有损 JPEG,然后将其另存为 PNG,那么它的大小会增加,如您所见,通常会增加很多。

    解决您的问题的方法是在上传图片之前对图片不做任何处理。它们已经是 PNG、GIF 或 JPEG 图像。那是你应该上传的。

    iPhone 相机保存的图像格式为 JPEG。

    听起来您可能需要阅读 PNGJPEG一般来说。

    关于cocoa-touch - 上传图片问题(UIImageJPEGRepresentation vs UIImagePNGRepresentation),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/495096/

    相关文章:

    objective-c - AFNetworking在返回JSON时将String值转换为整数吗?

    ios - UIPanGestureRecognizer 没有名为 touchesBegan 的成员

    java - 如何为 Android 创建类似 iphone 的搜索

    iOS 模拟器 (Xcode 4.2)

    architecture - 错误信息 : Undefined symbols for architecture i386 using ZBar Libraries

    ios - 在模态视图下方旋转 View

    objective-c - 在 iOS 上播放 youtube/vevo 视频

    iphone - 如何在新的 XCode 4.5 GM 模拟器中设置 iPhone 5?

    iphone - 如何使用 Storyboard?

    ios - 如何在构建时自动重置 iPhone 模拟器