【问题标题】:JPEG NSData of photo turned UIImage turned JPEG is completely different sizeJPEG NSData of phototurn UIImage turn JPEG is完全不同的大小
【发布时间】:2015-03-19 19:46:47
【问题描述】:

为什么第一个 JPEG 图像的字节数是第二个的 1/4?

[_stillOutput captureStillImageAsynchronouslyFromConnection:videoConnection:videoConnection completionHandler:
 ^(CMSampleBufferRef imageSampleBuffer, NSError * error)
 {
     NSData* imageBytes = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
     NSLog(@"Size = %ld", imageBytes.length);

     UIImage* image2 = [UIImage imageWithData:imageBytes];
     NSData* imageBytes2 = UIImageJPEGRepresentation(image2, 1.0);
     NSLog(@"Size = %ld", imageBytes2.length);
...

第一个尺寸是 1,528,278,第二个尺寸是 4,289,184。 它们的大小不应该大致相同吗?

有没有办法指定jpegStillImageNSDataRepresentation:imageSampleBuffer的缩放和压缩?

【问题讨论】:

  • 我的猜测是NSData* imageBytes2 = UIImageJPEGRepresentation(image2, 0.25); 你应该得到相同的结果。
  • 不。 0.85 给出相同的大小。

标签: ios objective-c uiimage avfoundation jpeg


【解决方案1】:

显然 Apple 的 jpegStillImageNSDataRepresentation 默认压缩为 0.85 左右。因此,通过将 UIImageJPEGRepresentation 设置为我得到相同的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2018-07-31
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多