「java图片写字」Java绘制图片

博主:adminadmin 2022-12-20 00:06:07 80

本篇文章给大家谈谈java图片写字,以及Java绘制图片对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何利用java在图片上添加文字

// 读取模板图片内容

BufferedImage image = ImageIO.read(new FileInputStream("c:\\test.jpg"));

Graphics2D g = image.createGraphics();// 得到图形上下文

g.setColor(Color.BLACK); // 设置画笔颜色

// 设置字体

g.setFont(new Font("宋体", Font.LAYOUT_LEFT_TO_RIGHT, 15));// 写入签名

// 下面这一句中的43,image.getHeight()-10可以改成你要的坐标。

g.drawString("这是新加入的文字", 43, image.getHeight() - 10);

g.dispose();

FileOutputStream out = new FileOutputStream("c:\\test1.jpg");

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

encoder.encode(image);

out.close();

希望我的回答能帮助你 谢谢 呵呵 答案补充 肯定了 在一张纸上写字 肯定会自动换行的 否则写外面?逻辑都通不过去~ 答案补充 把你的意思说出了 是不是随便的写字然后就提交 就把字写在了图片上还是?多少字 有没有约束? 答案补充 g.drawString("这是新加入的文字", 43, image.getHeight() - 10);

在这个做处理 你规定了字体的大小 那么获取字符的长度*大小 一次判断不要大于宽度 否则image.getHeight() - 10++ 你试试 应该可以的 我这里没有Eclipse 答案补充 public class mains {

/**

* @param args

*/

private static int fontsize = 15;

static String jj(String str)

{

String sContent = str;

sContent=sContent.replaceAll(" "," ");

sContent=sContent.replaceAll("br/","/");

sContent=sContent.replaceAll("br","/");

return sContent;

} 答案补充 static void hh(String str)

{

BufferedImage image;

try {

image = ImageIO.read(new FileInputStream("E:\\dian zi za zhi/789.jpg"));

Graphics2D g = image.createGraphics();// 得到图形上下文

g.setColor(Color.BLACK); // 设置画笔颜色

// 设置字体

g.setFont(new Font("宋体", Font.LAYOUT_LEFT_TO_RIGHT, fontsize));// 写入签名

// 下面这一句中的43,image.getHeight()-10可以改成你要的坐标。

String text = jj(str); 答案补充 String [] text1 = text.split("/");

int h = image.getHeight();

int w = image.getWidth();

for(int i=0;itext1.length;i++)

{

g.drawString(text1[i],0,fontsize+i*fontsize);

}

g.dispose();

FileOutputStream out = new FileOutputStream("E:\\dian zi za zhi/789.jpg");

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

encoder.encode(image);

out.close(); 答案补充 public static void main(String[] args) {

// TODO Auto-generated method stub

hh("sdakljsdhwwbr/asdasdbr/a");

}

}

试试 可以换行 答案补充 关于 图片的尺寸以及字体是否超出 你自己试着解决下 不要过于依赖问

java使用Graphics2D给图片上写字

你的电脑系统上要有那个字体,java才可以设置。

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment ();

String [] fontList = ge.getAvailableFontFamilyNames ();

用这个看看你电脑上的字体吧。

java如何让jlable中的图片上写字和现显示JTextField

图片有getGraphics方法,得到的Graphics对象有drawString方法可以写字。

至于重叠么,SWING应该是不能直接显示图片,默认也不能把图片作为背景(除非你自己去覆盖paint方法),那么,去看看JLayeredPane。把图片放进JLabel,放在底层,JTextField放在JLayeredPane上面一点的层次,注意要去查JLayeredPane的API,记得设置层次。

java 在图片上写字,当字长度超过图片宽度,文字自动换行,并且均居中!

要自己量度文字相对该字体的宽度,自己去换行的。

FontMetrics

getFontMetrics()

Gets the font metrics of the current font.

abstract FontMetrics

getFontMetrics(Font f)

Gets the font metrics for the specified font.

得到FontMetrics,再去量度文字的宽度等信息

java awt 圆内写字

Graphics2D g2d;

g2d.rotate-Math.PI*0.5);

//可以任意旋转角度

再把文字逐个画上去

如何在java的背景图片上添加文字

import java.awt.Color;

import java.awt.Frame;

import java.awt.Graphics;

public class DrawString extends Frame{

private static final int spacing = 20 ; //文字与图片边界的空白

private static final int wordNum = 7; //文字字号

private Color strColor;

private StringBuffer message;

private int pictureWidth;

private int pictureHight;

public void paint(Graphics g){

Color c = g.getColor();

g.setColor(strColor);

StringBuffer msg = message;

int strNumPerLine = (pictureWidth - spacing) / wordNum;

int strLineNum = message.length() / strNumPerLine;

for(int l=strLineNum,n=0 ;l0; l--){

msg.substring(n, strNumPerLine);

g.drawString(msg.toString(), wordNum, wordNum * strNumPerLine);

n = strNumPerLine;

}

g.setColor(c);

//this.draw(g);

}

public DrawString(Color strColor, StringBuffer message, int pictureWidth, int pictureHight) {

this.strColor = strColor;

this.message = message;

this.pictureWidth = pictureWidth;

this.pictureHight = pictureHight;

}

}

java图片写字的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java绘制图片、java图片写字的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-20,除非注明,否则均为首码项目网原创文章,转载请注明出处。