我可以通过(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)等坐标裁剪图像吗?的主要内容,如果未能解决你的问题,请参考以下文章

裁剪取自 AVCaptureStillImageOutput 的图像

根据android中的矩形坐标裁剪捕获的图像

使用 JCrop 保存裁剪的图像

选择图像根据坐标得到图像。头像裁剪器

Opencv在python中裁剪平行四边形图像[重复]

从两点裁剪图像(C#)