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 –