我試圖從相機獲得良好的圖像成爲可能,但只能找到例子是captureStillImageAsynchronouslyFromConnection
,然後直奔:captureStillImageAsynchronouslyFromConnection沒有JPG中介
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? – Crashalot 2016-03-30 07:43:56
是的〜https://github.com/blindsightcorp/rawphoto-ios/blob/master/RawPhoto/CaptureSessionManager.m – 2016-03-30 19:41:12
謝謝,但是第167行顯示你還在使用jpegStillImageNSDataRepresentation嗎?你如何轉換爲PNG? – Crashalot 2016-03-30 19:45:02