6
A
回答
17
夫特
3溶液:
func cropBottomImage(image: UIImage) -> UIImage {
let height = CGFloat(image.size.height/3)
let rect = CGRect(x: 0, y: image.size.height - height, width: image.size.width, height: height)
return cropImage(image: image, toRect: rect)
}
用于与矩形裁剪Helper方法:
func cropImage(image:UIImage, toRect rect:CGRect) -> UIImage{
let imageRef:CGImage = image.cgImage!.cropping(to: rect)!
let croppedImage:UIImage = UIImage(cgImage:imageRef)
return croppedImage
}
0
方法:
func croppIngimage(ImageCrop:UIImage, toRect rect:CGRect) -> UIImage{
var imageRef:CGImageRef = CGImageCreateWithImageInRect(imageToCrop.CGImage, rect)
var croppedimage:UIImage = UIImage(CGImage:imageRef)
return croppedimage
}
呼叫:
var ImageCrop:UIImage = UIImage(named:"image.png")
7
这几乎是Alexburtnik的回答
只是提一提,UIImage.size是逻辑大小(以 “点”)
然而,CGImage.cropping()使用的实际尺寸(在“像素”中)
因此,如果您使用带有@ 2x或@ 3x修改器的图像,则会发现 裁剪实际上只是期望的一半或三分之一。
所以当你裁剪,你可以考虑先RECT通过图像的“尺度”属性相乘,如下所示:
func cropImage(image:UIImage, toRect rect:CGRect) -> UIImage? {
var rect = rect
rect.size.width = rect.width * image.scale
rect.size.height = rect.height * image.scale
guard let imageRef = image.cgImage?.cropping(to: rect) else {
return nil
}
let croppedImage = UIImage(cgImage:imageRef)
return croppedImage
}
0
作为扩展的UIImage:
import UIKit
extension UIImage {
func crop(to rect: CGRect) -> UIImage? {
// Modify the rect based on the scale of the image
var rect = rect
rect.size.width = rect.size.width * self.scale
rect.size.height = rect.size.height * self.scale
// Crop the image
guard let imageRef = self.cgImage?.cropping(to: rect) else {
return nil
}
return UIImage(cgImage: imageRef)
}
}
用法:
let myImage = UIImage(named:"myImage.png")
let croppedRect = CGRect(x: 0, y: 0, width: newWidth, height: newHeight)
let croppedImage = myImage.crop(to: croppedRect)
相关问题
- 1. 以编程方式裁剪位图的底部部分
- 2. 裁剪图像和底部
- 3. 从底部裁剪图像的CSS
- 4. CSS - 裁剪图像 - 顶部和底部
- 5. 将方形图像裁剪成圆形 - 以编程方式
- 6. java Android - 以编程方式处理图像缩放/裁剪
- 7. 如何以编程方式使用c#裁剪图像
- 8. 以编程方式将图像裁剪为小矩形
- 9. 如何以编程方式将图像裁剪为零件
- 10. 从顶部裁剪图像
- 11. 如何基于图像中的边界框裁剪图像(以编程方式)?
- 12. iPhone以编程方式裁剪方形图像以显示为圆形
- 13. Android:以编程方式指定按钮底部的图像
- 14. Webview内容从底部裁剪[ANDROID]
- 15. 使用Javascript以编程方式剪切/剪切图像
- 16. 裁剪图像
- 17. 裁剪图像
- 18. 裁剪图像
- 19. 从屏幕底部到屏幕顶部裁剪位图150dp
- 20. 从UIImageView中裁剪图像
- 21. 从URL中裁剪图像
- 22. CSS正在裁剪我的图像底部
- 23. 段落裁剪图像的底部? (HTML/CSS)
- 24. ListBox裁剪顶部或底部
- 25. 从裁剪图像创建新图像
- 26. 用Libgdx从图像裁剪图像
- 27. 从现有图像中裁剪图像
- 28. WinRT中的裁剪/裁剪图像
- 29. 无法剪裁/裁剪图像
- 30. 图像裁剪AVCaptureSession图像
假设我有一个图像大小2448×3264我想那部分,即红色的一个。什么是toRect参数? – BornShell
看到这个:http://stackoverflow.com/questions/37946990/cgrectmake-cgpointmake-cgsizemake-cgrectzero-cgpointzero-is-unavailable-in –