Tôi đang cố triển khai chế độ xem máy ảnh iOS có hình ảnh có hình vuông (tương tự như Instagram). Mã của tôi xuất hiện bên dưới. Phần đầu tiên, nơi chiều cao khung được đặt bằng với chiều rộng khung hình, hoạt động như mong đợi và người dùng được cung cấp chế độ xem hình vuông. Vấn đề xảy ra sau khi tôi cố gắng áp dụng khung (đó là một tài sản CGRect) cho dữ liệu hình ảnh bằng cách sử dụng CGImageCreateWithImageInRect. Tôi vượt qua khung rect để phương pháp này với hình ảnh. Nhưng kết quả không được cắt thành hình vuông. Thay vào đó, hình ảnh vẫn giữ nguyên kích thước mặc định ban đầu từ máy ảnh iOS. Ai đó có thể cho tôi biết tôi đã làm gì sai không? Sự hiểu biết của tôi từ các tài liệu của Apple là CGImageCreateWithImageInRect nên chọn một khu vực hình ảnh của hình dạng Rect từ một số bắt đầu x/y phối hợp. Nhưng điều đó dường như không xảy ra.Cắt ảnh bằng CGImageCreateWithImageInRect
//Set the frame size to be square shaped
UIView *view = imagePicker.view;
frame = view.frame;
frame.size.height = frame.size.width;
view.frame = frame;
//Crop the image to the frame dimensions using CGImageCreateWithImageInRect
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self.popoverController dismissPopoverAnimated:true];
NSString *mediaType = [info
objectForKey:UIImagePickerControllerMediaType];
[self dismissModalViewControllerAnimated:YES];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = [info
objectForKey:UIImagePickerControllerOriginalImage];
croppedImage = (__bridge UIImage *)(CGImageCreateWithImageInRect((__bridge CGImageRef)(image), frame));
imageView.image = croppedImage;
}
else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
{
// Code here to support video if enabled
}
}
tôi đã cố gắng đi qua một CGRect nhỏ tùy ý nhưng đầu ra có 0 byte dữ liệu hình ảnh. Tôi đã sử dụng CGRect rect = CGRectMake (0, 26, 50, 50) ;. Ngoài ra, mã ban đầu của tôi đặt chiều cao khung hình bằng với chiều rộng, vì vậy kích thước đó nhỏ hơn kích thước ban đầu. Về cơ bản nó là hình vuông 320x320 dựa trên kích thước của màn hình iPhone. – hughesdan
có thể câu trả lời này có thể giúp http://stackoverflow.com/a/10185736/1447414 – user1447414