【问题标题】:Image Cropping issue图像裁剪问题
【发布时间】:2013-03-05 04:12:05
【问题描述】:

我想用以下代码裁剪 UIImage:

 - (UIImage*)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
 {
     CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
     // or use the UIImage wherever you like
     UIImage * img =  [UIImage imageWithCGImage:imageRef];
     CGImageRelease(imageRef);
     return img;
 }

此代码在模拟器中运行良好,但在设备上却出现异常结果。

【问题讨论】:

  • 进一步描述“设备上的异常结果”...
  • 检查图像的scale,在视网膜设备上,您可能需要相应地调整矩形的坐标。
  • 谢谢@henser 但下面的答案对我有用。实际上,裁剪区域的图像比裁剪的要大。不允许使用 Guys 之类的词?
  • 允许使用“Guys”这个词。没有必要也不建议对问题进行赞美或添加不必要的内容。帖子应该直接、简洁和直截了当,但应该充分传达问题。这有利于沟通和理解。编辑不是一种谴责,它只是后代的清洁问题。很高兴您的问题得到解决

标签: iphone objective-c ios5 uiimage crop


【解决方案1】:

创建一个 UIImage 类别并尝试添加它。

@implementation UIImage(裁剪)

- (UIImage *)crop:(CGRect)cropRect {

    cropRect = CGRectMake(cropRect.origin.x*self.scale, 
                      cropRect.origin.y*self.scale, 
                      cropRect.size.width*self.scale, 
                      cropRect.size.height*self.scale);       

    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], cropRect);
    UIImage *result = [UIImage imageWithCGImage:imageRef 
                                          scale:self.scale 
                                    orientation:self.imageOrientation]; 
    CGImageRelease(imageRef);
    return result;
}

【讨论】:

    【解决方案2】:

    试试这个:

        - (UIImage *)cropImage:(UIImage *)oldImage {
                CGSize imageSize = oldImage.size;
                UIGraphicsBeginImageContextWithOptions(CGSizeMake( imageSize.width,imageSize.height - 150),NO,0.);
                [oldImage drawAtPoint:CGPointMake( 0, -80) blendMode:kCGBlendModeCopy alpha:1.];
                UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();
                UIGraphicsEndImageContext();
                return croppedImage;
        }
    

    【讨论】:

    • 可以设置高、宽、x、y。
    • 为什么你将尺寸减小了 150
    • 因为我截屏并且底部有标签栏。
    • 我在 facebook 上分享照片。
    • 好的,谢谢哥们,但我猜 Scale 有一些问题
    猜你喜欢
    • 2017-05-22
    • 2015-09-30
    • 1970-01-01
    • 2011-04-19
    • 2019-10-23
    • 2014-04-05
    • 2012-12-12
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多