gpt4 book ai didi

java - 如何编辑转换为图像的文本?或任何其他实现/编辑文本的方法

转载 作者:行者123 更新时间:2023-11-29 05:52:07 25 4
gpt4 key购买 nike

对于我的项目,我想像在 Adob​​e Photoshop 中一样调整文本大小。但是,当我尝试调整(通过鼠标拖动)文本 Pane 大小时,只有文本 Pane 正在调整大小,而不是其中的文本。然后我尝试将我的文本转换为图像并尝试再次调整它的大小(如帖子 How to resize text in java 中所述)并且它工作正常..现在我有另一个编辑文本的问题。即,一旦我的文本转换为图像,我该如何编辑它(例如:更改文本颜色等)。

对此有什么想法吗?

最佳答案

..once my text is converted to image then how do I edit it (eg: changing the text color, etc).

不要。更好(质量)并且更容易在请求时用文本绘制图像的每个选择,在所需的 Font 中,开始 PointAffineTransformRenderinhHintsColor(等)。

StretchLabels

import java.awt.*;
import java.awt.geom.AffineTransform;

import javax.swing.*;

public class StretchLabels {

String s = "The quick brown fox jumps over the lazy dog!";
Font font = new Font(Font.SERIF, Font.PLAIN, 24);

public JComponent getGUI() {
JPanel gui = new JPanel(new BorderLayout());

JLabel l1 = new StretchTextLabel(s);
l1.setFont(font);
gui.add(l1, BorderLayout.CENTER);

return gui;
}

public static void main(String[] args) throws Exception {
Runnable r = new Runnable() {
@Override
public void run() {
JFrame f = new JFrame("Streeetch me!");
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);

StretchLabels eg = new StretchLabels();
f.setContentPane(eg.getGUI());
f.pack();

f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}

class StretchTextLabel extends JLabel {
private static final long serialVersionUID = 1L;

public StretchTextLabel(String s) {
super(s);
}

@Override
public void paintComponent(Graphics gr) {
Color c = gr.getColor();
setForeground(new Color(0,0,0,0));
super.paintComponent(gr);
setForeground(c);
gr.setColor(c);
Graphics2D g = (Graphics2D)gr;
g.setRenderingHint(
RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

double pw = this.getPreferredSize().width;
double ph = this.getPreferredSize().height;
double w = this.getSize().width;
double h = this.getSize().height;

// Set FG (text) color
g.setColor(this.getForeground());

// stretch
AffineTransform stretch =
AffineTransform.getScaleInstance(w/pw, h/ph);
g.setTransform(stretch);
g.drawString(getText(), 0, this.getFont().getSize());
}
}

.. how do I edit the text in the image?

我通常会提供这样的控件:

Text Control

当然,这不包括:

  1. Color,它在主 GUI 中有一个控件(一个基本的绘图应用程序。)
    Basic paint app.
  2. 通过“拖动”缩放生成的文本。这可以通过使用可调整大小的元素来实现,如@trashgod 或我本人(上文)所示。

关于java - 如何编辑转换为图像的文本?或任何其他实现/编辑文本的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13485501/

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