Tôi đang cố gắng để có được càng tốt một hình ảnh càng tốt từ camera, nhưng chỉ có thể tìm thấy ví dụ mà captureStillImageAsynchronouslyFromConnection
và sau đó đi thẳng đến:captureStillImageAsynchronouslyFromConnection mà không JPG trung gian
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
UIImage *image = [[UIImage alloc] initWithData:imageData];
JPEG là lossy và tất cả, là có cách nào để lấy dữ liệu dưới dạng PNG, hoặc thậm chí chỉ RGBA (BGRA, cái gì-có-bạn?). AVCaptureStillImageOutput dường như không có bất kỳ NSData * phương pháp khác ....
Trên thực tế nhìn vào CMSampleBufferRef, nó có vẻ như nó đã bị khóa như JPEG ~
formatDescription = <CMVideoFormatDescription 0xfe5e1f0 [0x3e5ac650]> {
mediaType:'vide'
mediaSubType:'jpeg'
mediaSpecific: {
codecType: 'jpeg' dimensions: 2592 x 1936
}
extensions: {(null)}
}
Có một số cách khác để có một ảnh có độ phân giải đầy đủ và nhận dữ liệu thô?
Vậy làm cách nào để bạn nhận được dữ liệu cho PNG? Bạn có sử dụng kCVPixelFormatType_32BGRA thay vì kCMVideoCodecType_JPEG không? – Crashalot
Có ~ https://github.com/blindsightcorp/rawphoto-ios/blob/master/RawPhoto/CaptureSessionManager.m –
cảm ơn, nhưng dòng 167 cho thấy bạn sử dụng jpegStillImageNSDataRepresentation vẫn còn? làm thế nào để bạn chuyển đổi sang PNG? – Crashalot