如何将普通的 UIImage 转换为相应的 NES 调色板颜色?
我想将 UIImage 转换为 8 位 NES 颜色。问题是,我在互联网上找不到任何可以执行此类操作的算法。我不想为此使用 openCV。有什么方法可以做到这一点吗?任何帮助表示赞赏。
I want to convert UIImage into 8 bit NES colors. The problem is, i couldn't find any algorithm on internet which can perform such operation. I don't want to use openCV for this. Is there any method to do so? Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我找到了这个问题的答案。解决方法如下:
对于 CGImage 的每个像素,计算 NES 调色板中最接近的颜色。两种颜色之间的距离可以使用它们之间的矢量距离来计算。向量距离可以使用数学函数 sqrt( (R1-R2)(R1-R2) + (G1-G2)(G1-G2) + (B1-B2)*(B1-B2) 计算),其中R、G、B表示颜色分量的值。
I found the answer for this. The solution is as follows:
For every pixel of CGImage calculate the nearest color from the NES palette. Distance between two colors can be calculated using the vector distance between them. Vector distance can be calculated using math function sqrt( (R1-R2)(R1-R2) + (G1-G2)(G1-G2) + (B1-B2)*(B1-B2)), where, R,G,B indicates the values of the color components.