java - 在 Android 中将 RGB 转换为 HSV

标签 java android rgb hsv

我想从像素获取 ARGB 值并转换为 HSV,然后使用新值设置像素。

我不完全明白该怎么做。谁能帮帮我?

最佳答案

假设您有一个位图对象以及 x 和 y 坐标。您可以像这样从位图中获取颜色作为 32 位值:

int color = bitmap.getPixel(x, y);

您可以像这样分离出 argb 组件:

int a = Color.alpha(color);
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);

然后你可以像这样转换成 HSV:

float[] hsv = new float[3];
Color.RGBToHSV(r, g, b, hsv);

现在您可以随心所欲地操纵 HSV 值。完成后,您可以转换回 rgb:

color = Color.HSVToRGB(hsv);

或者像这样你想使用 alpha 值:

color = Color.HSVToRGB(a, hsv);

然后您可以将颜色写回位图(它必须是可变位图):

bitmap.setPixel(x, y, color);

关于java - 在 Android 中将 RGB 转换为 HSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28893613/

相关文章:

java - 使用NewHadoopRDD时如何给出文件名?

java - 字节码与 native 代码相比有什么优势?

java - react native : Override Error on Package without Duplicate

javascript - 点击时 HTML5/Android 覆盖

ios - RBG24 在 Windows 上可以很好地播放,但在 iOS 上却不行

python - OpenCV在加载时为彩色图像提供错误的颜色

java - 如何避免线程中出现 HeadlessException?

android - 将线程执行绑定(bind)到前台服务

c# - Android UI 元素统一

python - 嗨,我正在使用 Python 为 GOES16 Air Mass 产品制作 RGB 图像,我像这样提取感兴趣范围的信息