我想从UIImage中获取一个子图像。我查看了类似的问题,但没有找到合适的答案。
我知道要获取的像素范围 - 如何从现有的图像返回此子图像?
我想从UIImage中获取一个子图像。我查看了类似的问题,但没有找到合适的答案。
我知道要获取的像素范围 - 如何从现有的图像返回此子图像?
UIImage
的类别,但代码应该很容易修改,使其不需要成为一个类别。CGRect fromRect = CGRectMake(0, 0, 320, 480); // or whatever rectangle
CGImageRef drawImage = CGImageCreateWithImageInRect(image.CGImage, fromRect);
UIImage *newImage = [UIImage imageWithCGImage:drawImage];
CGImageRelease(drawImage);
希望这可以帮到你!
以下是针对Swift 3的@donkim答案更新:
let fromRect=CGRect(x:0,y:0,width:320,height:480)
let drawImage = image.cgImage!.cropping(to: fromRect)
let bimage = UIImage(cgImage: drawImage!)
let img = UIImage(named: "existingImage")!
let scale = UIScreen.main.scale
let dy: CGFloat = 6 * scale // say you want 6pt from bottom
let area = CGRect(x: 0, y: img.size.height * scale - dy, width: img.size.width * scale, height: dy)
let crop = img.cgImage!.cropping(to: area)!
let subImage = UIImage(cgImage: crop, scale: scale, orientation:.up)
image.scale
),并将其应用到矩形框中(把所有数值乘以该比例因子),当创建最终的UIImage
时,使用方法imageWithCGImage:scale:orientation:
来再次设置正确的比例因子。 - Mecki