0

私は過去数時間からグーグルで画像を切り抜くための解決策を得ていますが、混乱していて、これら2つの違いは何ですか?

問題 : イメージ内から四角形のイメージをトリミングしたいのですが、既に境界が検出されています。ここに画像の説明を入力

初め :

 CGRect rect = CGRectMake(0,0,320, 460);

// Create bitmap image from original image data,
// using rectangle to specify desired crop area

CGImageRef imageRef = CGImageCreateWithImageInRect([imageView.image CGImage], rect);
UIImage *imgs = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

2番 :

CGRect rect = [backView bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();

[backView.layer renderInContext:context];

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
4

1 に答える 1

2

2番目の方法は、最初の場合のように、でbackViewある必要がないという点で、より一般的です。UIImageView

つまり、CGImageCreateWithImageInRect最初にCGImageが必要です。

CGImageRef imageRef = CGImageCreateWithImageInRect([imageView.image CGImage], rect);

一方renderInContext、画像に任意のビューをレンダリングできます。

[backView.layer renderInContext:context];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
于 2012-10-23T10:22:34.477 に答える