2012-07-03 80 views
0

目标:如何在缩放后裁剪图像。我可以缩放预定义的坐标像(10,10,320,312)后裁剪图像。我的UIImageView有这个大小?我可以通过坐标像(10,10,320,312)裁剪图像吗?

我有一个UIImageViewUIScrollView,我可以放大我的图像。当我按cropButton时,我想要在缩放后在UIImage中显示的图像被裁剪。我希望图像的大小等于UIImageView大小。

谢谢!!

缩放和裁切后缩放
before zoomingafter zoom and crop

我的代码是在这里。

-(void)cropButtonClicked 
{ 
    //Calculate the required area from the scrollview 
    CGRect visibleRect; 
    float scale = 1.0f/scroll.zoomScale; 
    visibleRect.origin.x = scroll.contentOffset.x * scale; 
    visibleRect.origin.y = scroll.contentOffset.y * scale; 
    visibleRect.size.width = scroll.bounds.size.width * scale; 
    visibleRect.size.height = scroll.bounds.size.height * scale; 

    UIImage *image = [self imageByCropping:imageView.image toRect:visibleRect]; 

    imageView.image=image; 


} 


- (UIImage*)imageByCropping:(UIImage *)myImage toRect:(CGRect)cropToArea{ 
CGImageRef cropImageRef = CGImageCreateWithImageInRect(myImage.CGImage, cropToArea); 
UIImage* cropped = [UIImage imageWithCGImage:cropImageRef]; 

CGImageRelease(cropImageRef); 
return cropped; 
} 
I use this logic.. Am I RIGHT? (May be i have to check my ScrollView programming) 
+2

你做了什么来实现目标?发布一些代码你为此做了什么? –

+1

不错的图片... :) – Peres

+0

我添加了代码..请参阅 – QueueOverFlow

回答

1

可能这段代码使用全部给你.. !!

CGSize itemSize = CGSizeMake(newWidth, newHeight);<br> 
UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0);<br> 
CGRect imageRect = CGRectMake(0, 0, newWidth, newHeight);<br> 
[image drawInRect:imageRect];<br> 
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();<br> 
UIGraphicsEndImageContext(); 
+0

中未显示的上部分,感谢您的回复。 – QueueOverFlow