Her*_*eis 5 uikit cgimage ios swift
我试图通过cropping(to:)a 上的方法裁剪用 iPhone 相机拍摄的图像的一部分CGImage,但我遇到了一个奇怪的现象,在UIImage转换时我的尺寸加倍.cgImage,这显然阻止了我做我想做的事情。
流程是:
.image现在设置为“屏幕截图”let croppedImage = imageContainerView.renderToImage()
imageContainerView.image = croppedImage
print(imageContainerView.image!.size) //yields (320.0, 568.0)
print(imageContainerView.image!.cgImage!.width, imageContainerView.image!.cgImage!.height) //yields (640, 1136) ??
extension UIView {
func renderToImage(afterScreenUpdates: Bool = false) -> UIImage {
let rendererFormat = UIGraphicsImageRendererFormat.default()
rendererFormat.opaque = isOpaque
let renderer = UIGraphicsImageRenderer(size: bounds.size, format: rendererFormat)
let snapshotImage = renderer.image { _ in
drawHierarchy(in: bounds, afterScreenUpdates: afterScreenUpdates)
}
return snapshotImage
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直在这里徘徊,但没有成功,并且很乐意感谢有关如何/为什么图像大小突然加倍的指针或建议。
提前致谢。
这是因为print(imageContainerView.image!.size)以点为单位打印图像对象的大小,以print(imageContainerView.image!.cgImage!.width, imageContainerView.image!.cgImage!.height)像素为单位打印实际图像的大小。
在您使用的 iPhone 上,水平和垂直方向的每个点都有 2 个像素。UIImage 缩放属性将为您提供因子,在您的情况下该因子将为 2。
请参阅此链接iPhone 分辨率
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |