ios - 从 3D 旋转的 UIView 或 UIImageView 获取像素颜色
问题描述
我有从视图中获取像素颜色的代码。
代码每次都运行良好,除非我将视图旋转 X 轴或 Y 轴。
该代码也适用于 Z 轴,但因为 X 轴和 Y 轴适用于图层,这可能是我没有按预期获得像素颜色的原因
这是我用来获取像素颜色的代码
func getPixelColor(_ point: CGPoint) -> UIColor? {
let pixel = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: 4)
let colorSpace = CGColorSpaceCreateDeviceRGB()
let context = CGContext(data: pixel, width: 1, height: 1, bitsPerComponent: 8, bytesPerRow: 4, space: colorSpace, bitmapInfo: CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue).rawValue)
context?.translateBy(x: -point.x, y: -point.y)
if let context = context {
layer.render(in: context)
}
let color = UIColor(red: CGFloat(Double(pixel[0]) / 255.0), green: CGFloat(Double(pixel[1]) / 255.0), blue: CGFloat(Double(pixel[2]) / 255.0), alpha: CGFloat(Double(pixel[3]) / 255.0))
return color
}
即使使用 X 轴和 Y 轴旋转,也应该进行哪些更改才能获得正确的像素颜色
谢谢!
解决方案
推荐阅读
- python-2.7 - 如何在机器人框架中使用监听器
- python - 从文本文件中为实体创建带有注释的 json 文件,并将 startIndex 和 endIndex 附加到字典中
- firebase - 当应用程序处于后台(最小化)时,推送通知不起作用 - iOS
- javascript - 下载文件到本地计算机发送附加到消息不和谐
- asp.net - bin 文件夹中缺少 DLLX 文件
- java - springboot kafka onApplicationEvent
- ios - 字符串中的日期没有给出正确的日期
- php - Zend Framework 3 教程路由和控制器
- ios - UIview 起始中心看似不正确。(虚假视觉)
- spring - 使用 Spring Cloud 合约处理路由功能(reactive-webflux)