java-我们可以在处理中创建部分彩色的文本吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-我们可以在处理中创建部分彩色的文本吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2179字,纯文字阅读大概需要4分钟。
内容图文
![java-我们可以在处理中创建部分彩色的文本吗?](/upload/InfoBanner/zyjiaocheng/686/b353d67f300e42719c720940f9d906c8.jpg)
我想学习在Processing(java)中创建部分彩色的文本/字符串,如下例.它可以是10%白色90%黑色.或任何两种颜色的任何比率.我想学习如何在处理中做到这一点.
解决方法:
选项1:处理中
将您的文本渲染到PGraphics对象中,然后遍历该对象的pixel []以更改部分文本的颜色.
在下面的示例中,除非您创建文本确切尺寸的PGraphics对象,否则颜色比率将不正确-我不确定是否存在以编程方式确定所需尺寸的方法. (因此,在示例中,我使用0.6的比例为文本的顶部?50%重新着色).
此外,已在对象上调用noSmooth(),因为抗锯齿将创建与原始文本颜色不完全相同的像素,这使得替换像素比简单检查相等性(==)更复杂.
import processing.core.PApplet;
import processing.core.PGraphics;
public class Text extends PApplet {
PGraphics text;
public static void main(String[] args) {
PApplet.main(Text.class);
}
@Override
public void settings() {
size(400, 400);
}
@Override
public void setup() {
makeText();
}
@Override
public void draw() {
background(55);
image(text, 100, 100);
}
public void makeText() {
final int orange = color(255,165,0);
final int yellow = color(255,255,0);
final float ratio = 0.6f;
text = createGraphics(150, 60);
text.noSmooth();
text.beginDraw();
text.fill(orange);
text.textSize(60);
text.textAlign(LEFT, TOP);
text.loadPixels();
text.text("TEXT", 0, 0);
text.endDraw();
for (int pixel = 0; pixel < (text.pixels.length * ratio); pixel++) {
if (text.pixels[pixel] == orange) {
text.pixels[pixel] = yellow;
}
}
}
}
结果:
选项2:使用JavaFX
这是一种骇人听闻的方法,但是由于文本经过了抗锯齿处理,因此效果更好.此方法要求您的草图处于FX2D渲染模式,这可以在size()调用中指定.
公开属于PApplet的stackPane(将在其中添加JavaFX文本对象):
Canvas canvas = (Canvas) ((PSurfaceFX) getSurface()).getNative();
StackPane p = (StackPane) canvas.getParent();
创建一个JavaFX文本对象.我正在使用CSS样式(具有立即截止的线性渐变)来实现部分着色的效果.
javafx.scene.text.Text t = new javafx.scene.text.Text("TEXT");
t.setCache(true);
t.setFont(Font.font(null, FontWeight.NORMAL, 60));
t.setStyle("-fx-fill:linear-gradient( from 100.0% 100.0% to 100.0% 0.0%, rgb(255, 165, 0) 0.5," + "rgb(255, 255, 0)" +" 0.5);");
最后,将文本添加到PApplet的阶段堆栈窗格(前面已公开):
p.getChildren().add(t);
结果(注意抗锯齿):
还要注意,由于此文本元素与Processing的绘图画布完全分开,因此您将需要使用t.setVisible()来切换可见性.
内容总结
以上是互联网集市为您收集整理的java-我们可以在处理中创建部分彩色的文本吗?全部内容,希望文章能够帮你解决java-我们可以在处理中创建部分彩色的文本吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。