加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何渲染Libgdx Bitmapfont,使其像素颜色与背景相反?

发布时间:2020-12-15 02:30:15 所属栏目:Java 来源:网络整理
导读:也不 sb.setBlendFunction(GL10.GL_ONE_MINUS_DST_COLOR,GL10.GL_ZERO);sb.begin();font.setColor(1,1,1);for (LineRect s: vertices){ font.draw(sb,""+ s.x+","+.y,s.x,s.y);}sb.end();sb.setBlendFunction(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA); 也
也不

sb.setBlendFunction(GL10.GL_ONE_MINUS_DST_COLOR,GL10.GL_ZERO);
sb.begin();
font.setColor(1,1,1);
for (LineRect s: vertices){
     font.draw(sb,""+ s.x+","+.y,s.x,s.y);
}
sb.end();
sb.setBlendFunction(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA);

也不

Gdx.gl10.glEnable(GL10.GL_COLOR_LOGIC_OP);
Gdx.gl10.glLogicOp(GL10.GL_XOR);

    sb.begin();
    font.setColor(1,1);
    for (LineRect s: vertices){
         font.draw(sb,s.y);
    }
    sb.end();


Gdx.gl10.glDisable(GL10.GL_COLOR_LOGIC_OP);

为我工作,我做错了什么?
我如何解决它?

我们的想法是绘制字体,它由具有部分透明纹理的四边形组成,除非背景为50%灰色,否则它将始终可见.
背景黑色=字体呈现白色,依此类推.

解决方法

您需要测试背景颜色的亮度.这里是我为AWT颜色制作的一种方法,应该很容易适应libgdx Color类:

/**
 * Returns the brightness of the color,between 0 and 255.
 */
public static int getBrightness(Color c) {
    if (c == null) return -1;
    return (int) Math.sqrt(
        c.getRed() * c.getRed() * .241 +
        c.getGreen() * c.getGreen() * .691 +
        c.getBlue() * c.getBlue() * .068);
}

如果亮度<1. 128,使用光前景,否则使用暗前景.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读