【发布时间】:2012-07-20 00:27:11
【问题描述】:
我正在尝试从相机中获得尽可能好的图像,但只能找到captureStillImageAsynchronouslyFromConnection 的示例然后直接进入:
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
UIImage *image = [[UIImage alloc] initWithData:imageData];
JPEG 是有损的,有什么方法可以将数据获取为 PNG,甚至只是 RGBA(BGRA,你有什么?)。 AVCaptureStillImageOutput 似乎没有任何其他 NSData* 方法....
其实看CMSampleBufferRef,好像已经被锁定为JPEG了~
formatDescription = <CMVideoFormatDescription 0xfe5e1f0 [0x3e5ac650]> {
mediaType:'vide'
mediaSubType:'jpeg'
mediaSpecific: {
codecType: 'jpeg' dimensions: 2592 x 1936
}
extensions: {(null)}
}
还有其他方法可以拍摄全分辨率照片并获取原始数据吗?
【问题讨论】:
-
那么你最终是如何获得 PNG 的数据的呢?你是不是只用了 kCVPixelFormatType_32BGRA 而不是 kCMVideoCodecType_JPEG?
-
谢谢,但第 167 行显示您还在使用 jpegStillImageNSDataRepresentation 吗?你如何转换成PNG?
-
我对凌乱的代码不好——那是一个错误的 ifdef。第 104 行是关键。 (和 170-183)。
-
没问题,但是你在哪里转换成PNG输出呢?不清楚...
标签: ios uiimage image-capture