You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Processing中将字符串格式的十六进制颜色值转为可用颜色值?

Processing中把十六进制颜色字符串转为可用颜色值的方法

方法1:利用unhex()结合位运算补全Alpha通道

Processing的unhex()能把十六进制字符串转成整数,但6位颜色字符串转出来的是纯RGB值,而Processing的color类型是ARGB格式(包含透明度),直接用会有问题。解决步骤:

  • 先去掉字符串开头的#,比如把"#C990C0"处理成"C990C0"
  • 用unhex()转成整数后,和0xFF000000做按位或运算,补上不透明的Alpha通道
  • 直接传给fill()或stroke()即可使用

示例代码:

String hexColorStr = "#C990C0";
// 去除#号
String cleanHex = hexColorStr.substring(1);
// 生成带Alpha通道的颜色值
int colorVal = 0xFF000000 | unhex(cleanHex);
// 调用绘图函数使用
fill(colorVal);
rect(50, 50, 100, 100);

方法2:手动拆分RGB分量构建颜色

如果想直观控制每个颜色通道,可以拆分字符串获取红、绿、蓝分量,再用color()生成颜色:

  • 同样先去掉#号
  • 分别截取前两位、中间两位、最后两位,用unhex()转成0-255的整数
  • 传入color(r, g, b)或color(r, g, b, a)(a为透明度,取值0-255)

示例代码:

String hexColorStr = "#C990C0";
String cleanHex = hexColorStr.substring(1);
// 拆分RGB分量
int r = unhex(cleanHex.substring(0, 2));
int g = unhex(cleanHex.substring(2, 4));
int b = unhex(cleanHex.substring(4, 6));
// 生成颜色,可按需添加透明度参数
int colorVal = color(r, g, b);
fill(colorVal);
ellipse(200, 100, 100, 100);

补充说明

  • 若处理的是带Alpha的8位十六进制字符串(如#FFC990C0),直接去掉#后用unhex()转成整数就能用,无需额外补Alpha
  • 两种方法均无需额外Java库,完全依赖Processing自带函数实现

内容的提问来源于stack exchange,提问作者chemFour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:10:28