Trong ứng dụng của tôi, tôi có chức năng 'Chụp từ Máy ảnh', tôi đang sử dụng GPUImageFramework của Brad Larson (ty), GPUImageStillCamera khi chụp ảnh tĩnh.Làm thế nào tôi có thể tính toán kích thước cắt (rect) của UIImage với độ phân giải khác nhau
stillCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:
AVCaptureDevicePositionBack];
như bạn có thể thấy. cài đặt phiên là AVCaptureSessionPresetPhoto
mà trong iPhone 4 cho tôi đầu ra 1529x2048 và với thiết bị 4s (8mp) mang lại cho tôi 2448x3264.
hình ảnh bên dưới là cách tôi sử dụng GPUStillCamera. ở đây, có hình chữ nhật trong trường hợp này, hình ảnh cắt trực tiếp của ảnh đã chụp.
đoạn mã khi tôi chụp ảnh.
- (IBAction)takePhoto:(id)sender
{
[stillCamera capturePhotoAsJPEGProcessedUpToFilter:filter withCompletionHandler:^(NSData *processedJPEG, NSError *error){
//1529x2048 when iPhone 4 and 2448x3265 when on 4s
UIImage *rawImage = [[UIImage alloc]initWithCGImage:[[UIImage imageWithData:processedJPEG]CGImage]scale:1.0 orientation:UIImageOrientationUp];
**CGRect rect = CGRect{?,?,?,?};**
UIImage *imageFromRect = [rawImage imageAtRect:rect ];
}
Câu hỏi của tôi ở đây là. Làm thế nào tôi có thể biết các điểm (x, y, w, h) mà tôi có thể chuyển sang phương thức imageAtRect
để vẽ hình ảnh con từ rawImage
? và sẽ chỉ nhận được phần hình ảnh trong hình chữ nhật (bất kể độ phân giải của hình ảnh được chụp) như được hiển thị trong màn hình ở trên? tôi có nên làm điều đó một cách thủ công hoặc có bất kỳ kỹ thuật toán học nào mà bạn có thể đề xuất không?
Cảm ơn!
Nếu bạn đang sử dụng GPUImage, hãy xem GPUImageCropFilter. Nó sẽ cắt bằng cách sử dụng không gian tọa độ hình ảnh với một giá trị khác nhau, từ 0,0 đến 1,0, tức là: không phân biệt kích thước hình ảnh –
Paul làm cho một điểm tốt. GPUImageCropFilter sử dụng hệ tọa độ chuẩn hóa, do đó, nó cắt một hình chữ nhật độc lập với độ phân giải của ảnh đầu vào và xử lý tính toán độ phân giải cho đầu ra cho bạn. –
Tôi đã xem xét nó và có nó hoạt động như các bạn chỉ nói ở đây :) cảm ơn. – janusbalatbat