ruby – 如何区分没有颜色的像素和黑色像素?

ruby – 如何区分没有颜色的像素和黑色像素?,第1张

概述我正在使用ChunkyPNG来获取图像上的像素颜色.当图像完全没有背景颜色并渲染到浏览器中时,背景颜色将变为白色(通常取决于您的浏览器配置). 我的问题是,当使用ChunkyPNG分析像素时,完全没有颜色的像素的值是rgb(0,0,0),而黑色像素的值是rgb(0,0,0) ).有什么方法可以区分它们吗?检查不透明度或…我缺少什么? 这是我的代码: chunky_image = ChunkyPNG 我正在使用ChunkyPNG来获取图像上的像素颜色.当图像完全没有背景颜色并渲染到浏览器中时,背景颜色将变为白色(通常取决于您的浏览器配置).

我的问题是,当使用ChunkyPNG分析像素时,完全没有颜色的像素的值是rgb(0,0),而黑色像素的值是rgb(0,0) ).有什么方法可以区分它们吗?检查不透明度或…我缺少什么?

这是我的代码:

chunky_image = ChunkyPNG::Image.from_file("test.png")wIDth = chunky_image.dimension.wIDthheight = chunky_image.dimension.height(0..wIDth - 1).each do |x|  (0..height- 1).each do |y|    red = ChunkyPNG::color.r(chunky_image[x,y])    green = ChunkyPNG::color.g(chunky_image[x,y])    blue = ChunkyPNG::color.b(chunky_image[x,y])    p "red: " + red.to_s    p "green: " + green.to_s    p "ble: " + blue.to_s  endend
解决方法 您需要rgba值而不是rgb值.

如果r,g,b为0且a为255,则为纯黑色

如果r,b为0且a> 0但是< 255它仍然是黑色但是或多或少透明 如果a为0,无论r,b是完全透明的(你的话中没有颜色) 所以你错过的是color.a(像素)值.希望你的照片有color_TRUEcolor_Alpha

总结

以上是内存溢出为你收集整理的ruby – 如何区分没有颜色的像素和黑色像素?全部内容,希望文章能够帮你解决ruby – 如何区分没有颜色的像素和黑色像素?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1290992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存