gpt4 book ai didi

java在圆形图像内添加文本

转载 作者:行者123 更新时间:2023-12-01 11:15:30 25 4
gpt4 key购买 nike

我有那个图像:

enter image description here

而且我需要向图像添加文本,所以我想编写接收 2 个字符串并将它们添加到图像的方法,例如:

addText(String str, String str2){...};

第一个字符串的长度始终为 3 个字符第二个字符串的长度可以是 1 到 20 个字符

addText("str", "secondstr");

结果我想收到如下所示的 base64 png 图像字符串:

enter image description here

主要问题是如何以“圆形格式”编写文本?我需要更改我编写的每个字符的 Y 坐标?

更新1:探索链接http://www.java2s.com/Code/Java/2D-Graphics-GUI/Drawtextalongacurve.htm ,但文本总是从左侧绘制,我如何将它们移动到圆的中心?

最佳答案

重要的部分是这个:

for (int i = 0; i < length; i++) {
Point2D p = gv.getGlyphPosition(i);
double theta = (double) i / (double) (length - 1) * Math.PI / 4;
AffineTransform at = AffineTransform.getTranslateInstance(p.getX(),
p.getY());
at.rotate(theta);

这里定义了一个角度theta,并使其从0到length/length*Math.PI/4循环,所以它是从0°到45°的旋转。您需要做的是调整值 theta(也使用负数)以使其在您想要的位置开始和结束。

从您发布的图像来看,第一根弦必须从 -20° 到 20°(或从 340° 到 20°),第二根弦必须从 225° 到 135°。请注意,这些度数必须转换为弧度才能正常工作。

关于java在圆形图像内添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31880253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com