gpt4 book ai didi

ios - 获取图像中的像素值

转载 作者:行者123 更新时间:2023-11-30 14:02:28 26 4
gpt4 key购买 nike

我正在计算拍摄照片中像素的 RGB 值。我有这个代码

func getPixelColorAtLocation(context: CGContext, point: CGPoint) -> Color {

self.context = createARGBBitmapContext(imgView.image!)

let data = CGBitmapContextGetData(context)
let dataType = UnsafePointer<UInt8>(data)

let offset = 4 * ((Int(imageHeight) * Int(point.x)) + Int(point.y))
var color = Color()
color.blue = dataType[offset]
color.green = dataType[offset + 1]
color.red = dataType[offset + 2]
color.alpha = dataType[offset + 3]
color.point.x = point.x
color.point.y = point.y

但是我不确定这行代码在代码中的含义。

let offset = 4 * ((Int(imageHeight) * Int(point.x)) + Int(point.y))

有什么帮助吗?提前致谢

最佳答案

图像是像素的集合。为了获取 (x,y) 点处的像素,您需要计算该集合的偏移

如果您使用dataType[0],它没有偏移量,因为它指向指针所在的位置。如果您使用 dataType[10],则意味着您从指针所在的位置开始获取了第 10 个元素。

由于我们有RGBA颜色模型,你应该乘以4,然后你需要得到x的偏移量(将为x),并乘以y(这将是图像的宽度乘以y ,以获得必要的列)或:

offset = x + width * y
// offset, offset + 1, offset + 2, offset + 3 <- necessary values for you

想象一下,就像您有一个包含值的长数组。

想象一下二维数组以一维数组的形式实现就清楚了。希望对您有所帮助。

关于ios - 获取图像中的像素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32820711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com