ios - 照片的JPEG NSData转UIImage转JPEG大小完全不同

标签 ios objective-c uiimage avfoundation jpeg

为什么第一个 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 的缩放和压缩?

最佳答案

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

关于ios - 照片的JPEG NSData转UIImage转JPEG大小完全不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153636/

相关文章:

ios - 在上下文上绘图时在 UIImage 上应用 CATransform3D

iphone - UIGraphicsGetImageFromCurrentImageContext - 将图像分成两部分创建黑色背景

objective-c - Objective-C : Where to find <process id> in gdb?

IOS Swift - 无需 Storyboard 即可导航至主屏幕

iphone - iOS : NSDateFormatter memory leak/viewDidUnload

ios - 如何使用通用签名定义 block

iphone - 使用 ALAssetsLibrary 和 ALAsset 取出 Image 作为 NSData

iphone - UIButton 图像在 IB 中看起来不错,但在应用程序中显示时会被拉伸(stretch)

objective-c - 如何实现一个 iOS 表格 View ,旁边带有字母以供导航?

iOS 8.2 UIRequiresPersistentWiFi 不工作