gpt4 book ai didi

swift - 如何找到 CGImage 各个像素的 alpha 值?

转载 作者:行者123 更新时间:2023-11-30 10:33:38 25 4
gpt4 key购买 nike

如何查找 CGImage 的各个像素的 alpha 值?

decode 返回一个数组CGImage的属性(property)。是否需要探测该数组的值?

或者我应该看看dataProvider属性(property)?

我想迭代像素并获取每个像素的 alpha 值。

编辑:

链接到重复项的问题是 Objective-C 问题。我只知道 swift。

最佳答案

您询问了 CGImage,但这应该相对容易修改。我确实认为需要探测该数组的值,因此您可以这样做:

func imageIsEmpty(_ image: UIImage) -> Bool {
guard let cgImage = image.cgImage,
let dataProvider = cgImage.dataProvider else
{
return true
}

let pixelData = dataProvider.data
let data: UnsafePointer<UInt8> = CFDataGetBytePtr(pixelData)
let imageWidth = Int(image.size.width)
let imageHeight = Int(image.size.height)
for x in 0..<imageWidth {
for y in 0..<imageHeight {
let pixelIndex = ((imageWidth * y) + x) * 4
let r = data[pixelIndex]
let g = data[pixelIndex + 1]
let b = data[pixelIndex + 2]
let a = data[pixelIndex + 3]
if a != 0 {
if r != 0 || g != 0 || b != 0 {
return false
}
}
}
}

return true
}

我在 How to check if a uiimage is blank? (empty, transparent) 中找到了 mattdedek 的答案

他利用这篇文章提出了他的解决方案: Get Pixel Data of ImageView from coordinates of touch screen on xcode?

关于swift - 如何找到 CGImage 各个像素的 alpha 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58562484/

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