赤い View に従って Image をトリミングしたい。注意すべき点がいくつかあります。
1.画像のスクロールとズームが可能です。2.赤いImageViewは、画像に応じて動的に作成されます
UIImage* whole = [UIImage imageNamed:@"9.png"]; //I uses this image
CGImageRef cgImg = CGImageCreateWithImageInRect(whole.CGImage, CGRectMake(x, y, incX, incY));
UIImage* part = [UIImage imageWithCGImage:cgImg];
の値を見つける方法を知りたいだけです
x、y、インクX、インクY
ありがとう...
シナリオ 1: 通常 (スクロールしない)
期待される結果 (上下の黒い枠を無視)
シナリオ 2:スクロール
期待される結果 (上下の黒い枠を無視)
シナリオ 3: ズーム
ズームされたものと同じ期待される結果。
いずれの場合も、赤い四角形の中にそれぞれの画像が必要です。
これらすべてについて、私はこのコードを使用しています...
-(void)cropClicked:(UIButton*)sender
{
float zoomScale = 1.0 / [mainScrollView zoomScale];
CGRect rect;
rect.size.width = [redImageView bounds].size.width * zoomScale ;
rect.size.height = [redImageView bounds].size.height * zoomScale ;
rect.origin.x = ([mainScrollView bounds].origin.x + redImageView.frame.origin.x );
rect.origin.y = ([mainScrollView bounds].origin.y + redImageView.frame.origin.y );
CGImageRef cr = CGImageCreateWithImageInRect([[mainImageView image] CGImage], rect);
UIImage *cropped = [UIImage imageWithCGImage:cr];
mainImageView.image=cropped;
UIImageWriteToSavedPhotosAlbum(cropped, nil, nil, nil);
CGImageRelease(cr);
}