gpt4 book ai didi

ios - 在 ios Swift 3.0 中为图像的特定部分填充颜色

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:54 24 4
gpt4 key购买 nike

我正在开发彩色应用程序。其中,App 有图片,我们必须用选定的颜色给它上色。

我尝试了很多事情来完成应用程序。但是,还没有找到完美的方法来为图像的特定部分填充颜色。

我尝试使用此代码获取像素颜色。

func getPixelColor(pos: CGPoint) -> UIColor {

let pixelData = self.cgImage!.dataProvider!.data
let data: UnsafePointer<UInt8> = CFDataGetBytePtr(pixelData)

let pixelInfo: Int = ((Int(self.size.width) * Int(pos.y)) + Int(pos.x)) * 4

let r = CGFloat(data[pixelInfo]) / CGFloat(255.0)
let g = CGFloat(data[pixelInfo+1]) / CGFloat(255.0)
let b = CGFloat(data[pixelInfo+2]) / CGFloat(255.0)
let a = CGFloat(data[pixelInfo+3]) / CGFloat(255.0)

return UIColor(red: r, green: g, blue: b, alpha: a)
}

上面的代码工作,它检测像素颜色。

但是在上面的代码之后,尝试在图像的特定触摸部分上填充颜色。

也使用了泛洪算法,但它没有完全填充特定部分。

尝试使用 Masking 方法来填充图像的特定部分。

Image

我使用下面的代码在触摸像素上填充颜色,如上图所示,您会看到显示触摸位置的红色,并将该像素颜色更改为红色。

 UIGraphicsBeginImageContextWithOptions((rect?.size)!, false, (images?.scale)!)
let c = UIGraphicsGetCurrentContext()
images?.draw(in: rect!)

c!.setFillColor(UIColor.red.cgColor)
c!.setBlendMode(CGBlendMode.normal)


c!.fill(CGRect(x: (location?.x)!, y: (location?.y)!, width: 10, height:10))

let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

img.image = result

任何人都有解决方案。然而,我只能在触摸区域像素上填充颜色,但是,我们必须使用选定的颜色在特定触摸部分上进行着色。还要注意颜色应该填充在边界内,而不是在边界颜色上或边界外。

如果有人有示例代码,请分享。

谢谢。

最佳答案

使用这个项目:https://github.com/Chintan-Dave/UIImageScanlineFloodfill

这里我们设置了限制按钮。所以默认设置为 10。然后为所有 iPhone 放置 300x300 的图像尺寸,为 iPad 放置 600x600 的图像尺寸。它非常适合我。保持完美的图像质量。

希望这个回答对你有帮助。

关于ios - 在 ios Swift 3.0 中为图像的特定部分填充颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44450527/

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