2014-11-27 4 views
0

이미지 자르기에 문제가 있습니다.1 : 1로 이미지 자르기 및 크기 조정

내 흐름은 : 모두 665 X 985 픽셀 다음 크기의 이미지) 그것을 665 X 665 픽셀을 자르기가있는 경우 (예를 들어 1 :

1) (1)에 이미지를 자르.

2) 크기를 612 X 612 픽셀로 같은 크기로 조정합니다. 이를 위해

내가 사용하는 코드이다

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); 

그럼 내가

CGSize newSize; 



    newSize = CGSizeMake(612 , 612); 


UIGraphicsBeginImageContext(newSize); 

[croppedImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

이 내가이 일을 수행하는 방법이 있지만 장치 시뮬레이터에서 완벽하게 잘 실행이며, 612 X 612 픽셀로 크기를 조정!

장치에서 그림을 많이 축소합니다! 제발 도와주세요! 미리 감사드립니다.

답변

1

을 사용하면 장치에 따라 망막 또는 비 망막에 맞게 이미지 컨텍스트를 만들 수 있습니다.

+0

나는 형제를 시험하게하고 답장을 보내주게한다. –

관련 문제