今天要写一个给图片加文字水印的小应用,其中涉及到getFontMetrics这个方法,它用于描述字体对象的特征,查了一下它的构造函数(有两个):
public final FontMetrics getFontMetrics()
public final FontMetrics getFontMetrics( Graphics gr )
返回值是FontMetrics对象,该对象已被初始化为描述这个字体对象的基本字体。
需要说明的是,虽然字体对象维护的FontMetrics对象会包含请求的字体特性,但是,调用该方法后的对象可能会不匹配所设置的参数信息,出现这样的问题是因为有的字体信息是不可用的,我试了一下,自己新增的字体类,或者是框架外的字体信息在参数化时会出现异常哦。。
分享到:
相关推荐
FontMetrics fm = g2d.getFontMetrics(font); int strWidth = fm.stringWidth("编辑"); int opSpacing = (width - strWidth) / 3; panel.setLayout(null); editLabel.setBounds(opSpacing, 0, ...
6. **使用Java的FontMetrics进行调整**:通过`Graphics2D`的`getFontMetrics`方法获取特定字体的测量信息,根据需要调整文本的位置和大小,以获得最佳的显示效果。 总的来说,解决JFreeChart在Linux下的中文乱码...
使用`java.awt.Font`创建字体,`java.awt.Color`设置颜色,透明度可以通过`Graphics2D`的`setAlpha()`方法调整。例如: ```java Graphics2D g2d = image.createGraphics(); g2d.setFont(new Font("Arial", Font....
Java提供了`java.awt.Font`类,可以通过`Font.createFont()`方法加载字体文件并调整大小。 3. **创建图片**:使用`java.awt.image.BufferedImage`类创建一个新的图片对象,设定其宽度和高度。验证码通常包含4-6个...
通过修改`Font`构造函数中的大小参数,或者使用`Font.getSize()`和`Font.setSize()`方法,你可以调整字体的大小。 3. **颜色设定**:`Color`类提供了丰富的颜色选择。你可以用RGB值(如`new Color(255, 0, 0)`表示...
g2d.drawString(text, (width - g2d.getFontMetrics().stringWidth(text)) / 2, (height + g2d.getFontMetrics().getHeight()) / 2); g2d.dispose(); ImageIO.write(image, "png", new File(outputPath)); } } ...
Font font = new Font("Arial", Font.BOLD, 36); Color color = Color.WHITE; float alpha = 0.5f; // 添加水印并保存新图像 BufferedImage watermarkedImage = addWatermark(sourceImage, watermarkText, ...
g2d.drawString(text, 0, (getHeight() - g2d.getFontMetrics().getHeight()) / 2); } public void expand() { if (progress ) { progress += 1; // 控制字体展开的速度,数字越大,速度越慢 repaint(); // ...
- 文字水印:使用`Font`类创建自定义字体,`Graphics2D`对象的`drawString()`方法在新图像上绘制文字。 4. **合并水印与原图**: 创建一个新的`BufferedImage`对象,大小与原图相同,然后使用`Graphics2D`对象将...
FontMetrics metrics = g2d.getFontMetrics(); int textWidth = metrics.stringWidth(text); int textHeight = metrics.getHeight(); // 在指定位置绘制文本 g2d.drawString(text, x, y + textHeight - ...
FontMetrics fm = g2d.getFontMetrics(); int textWidth = fm.stringWidth(content); int textHeight = fm.getHeight(); // 计算文字的居中位置 int x = (width - textWidth) / 2; int y = (height - ...
float y = 50 + paint.getFontMetrics().descent - paint.getFontMetrics().ascent; // 文字起始y坐标,确保文字居中 canvas.drawText(text, x, y, paint); ``` 6. **保存图片到SD卡**:完成绘制后,将Bitmap保存到...
在Java中,我们可以利用`FontMetrics`类来获取关于字体和基线的信息。`FontMetrics`提供了如`getBaselineFor(char)`和`getAscent()`等方法,帮助我们确定文本的基线位置。例如,我们可以在绘制字符串前先计算出基线...
FontMetrics fm = g2d.getFontMetrics(boldFont); int textWidth = fm.stringWidth(btnText); int textAscent = fm.getAscent(); g2d.setColor(hoverColor); g2d.setFont(boldFont); g2d.drawString...
Apache Commons Imaging提供了一系列用于读取、写入和操作各种图像格式的方法,包括JPEG、PNG、GIF等。Java 2D API则是一个强大的图形处理框架,可以用于绘制图像、文本、形状等。 以下是一个简单的图片拼接示例,...
Font fx = new Font("TimesRoman", Font.PLAIN, 12).deriveFont(fontAT); g.setFont(fx); g.setColor(Color.blue); g.drawString(bottomText, xValueOfBottomText, height); ``` 此段代码展示了如何根据字体大小...
FontMetrics metrics = g2d.getFontMetrics(); int x = (width - metrics.stringWidth(captchaCode)) / 2 + i * metrics.stringWidth(String.valueOf(c)) / 2; int y = (height - metrics.getHeight()) / 2 + ...
FontMetrics metrics = g.getFontMetrics(); g.drawString(String.valueOf(c), (metrics.stringWidth(code) / code.length()) * i++, 30); } g.dispose(); ImageIO.write(image, "jpg", response....
FontMetrics fm = g2d.getFontMetrics(); int x = (width - fm.stringWidth(code)) / 2; int y = (height - fm.getHeight()) / 2 + fm.getAscent(); g2d.drawString(code, x, y); // 添加干扰元素 for (int ...
Java提供了多种类库用于处理文本,如`java.awt.Font`用于定义字体样式,`java.awt.Graphics2D`提供图形绘制功能,包括文字渲染。在Java Swing或JavaFX中,我们可以通过`JLabel`、`JTextArea`等组件来展示文本,但...