【问题标题】:Image compression for Facebook iOS SDKFacebook iOS SDK 的图像压缩
【发布时间】:2011-01-23 16:37:51
【问题描述】:

这可能不是问题,但我正在尝试找出 Facebook 相册照片图像压缩发生在上传之前或之后的位置。我正在将 UIimage 发送到 Facebook 相册,最终在 Facebook 中以 640X480 分辨率显示大约 43 kb jpeg,类似于我从其他来源上传的其他照片。如果我将相同的 UIImage 附加到电子邮件中,则它是 640x480 的 461 kb jpeg。

Facebook 上传需要一段时间,我想加快速度,所以我有 2 个问题。

  1. 在 Facebook SDK 中的 Facebook 服务器上还是我的设备上进行压缩?

  2. 如果它发生在服务器上,我如何在上传之前在我的设备上压缩 UIImage,而不像允许使用 jpeg 那样调整大小(重新采样到 100X80 或其他东西)。我曾尝试使用 UIImageJPEGRepresentation,但如果发送的是 NSData 而不是 UIImage,Facebook SDK 会给我一个错误。

【问题讨论】:

  • 您能否确定 Facebook SDK 是否会在设备上压缩图像?
  • 在我写这篇文章的时候,我确定 Facebook SDK 在上传之前没有压缩图像,尽管 Facebook 在服务器上做了。如果使用原始 SDK 上传,我更改的代码生成的质量与 Facebook 上的最终照片相同。

标签: iphone facebook


【解决方案1】:

经过一番挖掘,我替换了这部分代码:

       NSData* imageData = UIImagePNGRepresentation((UIImage*)dataParam);
    [self utfAppendBody:body
                   data:[NSString stringWithFormat:
                         @"Content-Disposition: form-data; filename=\"%@\"\r\n", key]];
    [self utfAppendBody:body
                   data:[NSString stringWithString:@"Content-Type: image/png\r\n\r\n"]];

在 FBRequest.m 中包含这部分代码:

      NSData* imageData = UIImageJPEGRepresentation((UIImage*)dataParam, 1);
      [self utfAppendBody:body
                     data:[NSString stringWithFormat:
                           @"Content-Disposition: form-data; filename=\"%@\"\r\n", key]];
      [self utfAppendBody:body
                     data:[NSString stringWithString:@"Content-Type: image/jpeg\r\n\r\n"]];

并发现它在大约一半的时间内加载。猜猜我会在git上发帖

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-19
    • 2012-06-13
    • 2016-12-19
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多