2013-01-23 5 views

答えて

14

UIImage *croppedImg = nil; 
CGRect cropRect = CGRectMake(AS You Need); 
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect]; 

使用(あなたがイメージのサイズをしたいとUIImageを返す方法

- (UIImage *)croppIngimageByImageName:(UIImage *)imageToCrop toRect:(CGRect)rect 
    { 
     //CGRect CropRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height+15); 

     CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect); 
     UIImage *cropped = [UIImage imageWithCGImage:imageRef]; 
     CGImageRelease(imageRef); 

     return cropped; 
    } 
+2

それは機能します!ありがとうございました。しかし、私は十分な評判を得ていません。 – grandagile

0

次したい画像を渡します切り抜かれ、必要に応じてimage.size.widthとimage.size.heightを変更します。

-(UIImage *)cropSquareImage:(UIImage *)image 
{ 
    CGRect cropRect; 

    if (image.size.width < image.size.height) 
    { 
     float x = 0; 
     float y = (image.size.height/2) - (image.size.width/2); 

     cropRect = CGRectMake(x, y, image.size.width, image.size.width); 
    } 
    else 
    { 
     float x = (image.size.width/2) - (image.size.height/2); 
     float y = 0; 

     cropRect = CGRectMake(x, y, image.size.height, image.size.height); 
    } 


    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect); 
    return [UIImage imageWithCGImage:imageRef]; 


} 
+0

あなたの 'imageRef'はメモリをリークしようとしていますが、最後に – WDUK

+0

に' CGImageRelease(imageRef); 'が必要ですが、アークが無効になっていて、最後にどこにありますか? – Dhara

+0

ARCはCGImageRefには適用されません。結局、あなたがUIImageを返す前に私は意味します。 – WDUK

関連する問題