2013-08-13 9 views
8

ユーザは、編集画面でデフォルトを示すトリミングボックスのサイズを変更できます。私は以下のコードで試した:目的のCでイメージをトリミングする方法は?

- (UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect { 

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

しかし、それは固定された領域を切り取った。ユーザーが選択した領域を切り抜く方法は?

+1

あなたのgivに別のCGRectを試してみてくださいそれは機能します。私はあなたのコードに問題はないとは思わない。言語に関する基本的な問題。 Objective-Cに関するいくつかの書籍やリンゴのドキュメントをお読みください。 – Tirth

答えて

6
CGRect clippedRect = CGRectMake(0 ,0,180 ,180); 
    CGImageRef imageRef = CGImageCreateWithImageInRect(imgVw1.image.CGImage, clippedRect); 
    UIImage *newImage = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 
    imgVw1Cliped.image=newImage; 

    NSLog(@"%d",imgVw1Cliped.image.imageOrientation); 
+0

あなたの助けをありがとう – Anupama

+0

@ user2677875あなたが答えに満足してからこの答えをupvoteしてください.. bcz ur upvoteはMohit ..と私のプロジェクトで働いているこの答えのために完全に役立ちます。 – Bajaj

+0

@Mohitこのコードはもう機能していないようです。 ios8にエラーを返します。 – sunny

22

クロップ画像取得の場合:コールcroppIngimageByImageNameため

UIImage *croppedImg = nil; 
CGRect cropRect = CGRectMake("AS YOu Need"); //set your rect size. 
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect]; 

次のコードを使用する:toRect:返す方法

- (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; 
    } 
(画像の具体的な大きさと UIImage
関連する問題