У меня возникла проблема с обрезкой изображения.Обрезать изображение до 1: 1, а затем изменить его размер
Мой поток:
1) Обрежьте изображение до 1: 1 (например, если есть изображение размером 665 X 985 точек кадрирование его 665 X 665 точек).
2) изменить размер до 612 X 612 px такой же, как instagram.
Для этого кода я использую:
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *d=UIImagePNGRepresentation(image);
CGFloat pic_crop;
NSLog(@"Size of Image(bytes):%lu",(unsigned long)[d length]);
NSLog(@" original Image Size :%.2f \n",(float)d.length/1024.0f/1024.0f);
NSLog(@"Original height --->%f",image.size.height);
NSLog(@"Original width --->%f",image.size.width);
if (image.size.height > image.size.width) {
pic_crop=image.size.width;
NSLog(@"%f",image.size.width);
}
else{
pic_crop=image.size.height;
NSLog(@"%f",image.size.height);
}
тогда я обрезать его, если высота меньше обрезать его размер высоты или ширины размера!
_previewImage.frame = CGRectMake(
_previewImage.frame.origin.x,
_previewImage.frame.origin.y, pic_crop, pic_crop);
UIImage *croppedImage = [image croppedImage:CGRectMake((image.size.width -_previewImage.frame.size.width)/2, (image.size.height -_previewImage.frame.size.height)/2, _previewImage.frame.size.width, _previewImage.frame.size.height)];
NSLog(@"crop height --->%f",croppedImage.size.height);
NSLog(@"crop width --->%f",croppedImage.size.width);
NSData *d2=UIImagePNGRepresentation(croppedImage);
NSLog(@"Size of Image(bytes):%lu",(unsigned long)[d2 length]);
NSLog(@" After compression :%.2f \n",(float)d2.length/1024.0f/1024.0f);
Тогда я изменить его размер до 612 X 612 пикселей,
CGSize newSize;
newSize = CGSizeMake(612 , 612);
UIGraphicsBeginImageContext(newSize);
[croppedImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Это, как я выполнить эту вещь, она полностью работает хорошо в тренажере, но не в устройстве!
Он сильно сжимает изображение на устройстве! Пожалуйста, помогите мне! Заранее спасибо .
ok позвольте мне попробовать bro, и спасибо за ответ –