我可以通过(10,10,320,312)等坐标裁剪图像吗?
Posted
技术标签:
【中文标题】我可以通过(10,10,320,312)等坐标裁剪图像吗?【英文标题】:can i crop image by coordinates like (10,10,320,312)? 【发布时间】:2012-07-03 06:32:51 【问题描述】:目标:缩放后如何裁剪图像。我可以在(10,10,320,312)等预定义坐标处缩放后裁剪图像吗?我的 UIImageView 有这个尺寸吗?
我在UIScrollView
中有一个UIImageView
,我可以缩放我的图像。当我按下cropButton
时,我想要在缩放后裁剪UIImage
中显示的图像。我希望图像大小等于UIImageView
大小。
谢谢!!
缩放前缩放和裁剪后
我的代码在这里。
-(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)
【问题讨论】:
你为实现目标做了什么?发布一些代码你做了什么? @stackBlue。你的做法是正确的。你面临什么问题? @Vignesh 它是裁剪图像。但不是在 UIImageView 中看到的。它切割了 UIImageView 中不显示的上部 【参考方案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();
【讨论】:
以上是关于我可以通过(10,10,320,312)等坐标裁剪图像吗?的主要内容,如果未能解决你的问题,请参考以下文章