剪切照片 crop Image (swift PK object-c)

object-c 的方式:

方式1

    CGFloat scale = [UIScreen mainScreen].scale;
    CGRect rectFrame = CGRectMake(frameFromRect.origin.x * scale, frameFromRect.origin.y * scale, frameFromRect.size.width * scale, frameFromRect.size.height * scale);
    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rectFrame);
    UIImage * croppedImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);

    readingView.image = croppedImage;```

方式2

/**
*从图片中按指定的位置大小截取图片的一部分

  • UIImage image 原始的图片

  • CGRect rect 要截取的区域
    */
    +(UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect{

    //将UIImage转换成CGImageRef
    CGImageRef sourceImageRef = [image CGImage];

    //按照给定的矩形区域进行剪裁
    CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect);

    //将CGImageRef转换成UIImage
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef];

    CGImageRelease(newImageRef);

    //返回剪裁后的图片
    return newImage;
    }



swift 的方式: (直接剪切不惯病,直接剪切没毛病)

let screenScale = UIScreen.main.scale
let index = newView!.superview!.subviews.index(of: newView!)!
let subImageFrame = CGRect.init(x: frames[index].origin.xscreenScale, y: frames[index].origin.yscreenScale, width: frames[index].size.widthscreenScale, height: frames[index].size.heightscreenScale)

///核心代码就一句
let subImage = UIImage.init(cgImage:self.backImage!.cgImage!.cropping(to: subImageFrame)!)

newView?.image = subImage```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容