工具类——java在图片指定位置写字
2016-03-16 14:29
501 查看
import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; public class PrintImage { private Font font = new Font("黑体", Font.PLAIN, 25); // 添加字体的属性设置 private Graphics2D g = null; private int fontsize = 0; /** * 导入本地图片到缓冲区 */ public BufferedImage loadImageLocal(String imgName) { try { return ImageIO.read(new File(imgName)); } catch (IOException e) { System.out.println(e.getMessage()); } return null; } /** * 导入网络图片到缓冲区 */ public BufferedImage loadImageUrl(String imgName) { try { URL url = new URL(imgName); return ImageIO.read(url); } catch (IOException e) { System.out.println(e.getMessage()); } return null; } /** * 生成新图片到本地 */ public void writeImageLocal(String newImage, BufferedImage img) { if (newImage != null && img != null) { try { File outputfile = new File(newImage); ImageIO.write(img, "jpg", outputfile); } catch (IOException e) { System.out.println(e.getMessage()); } } } /** * 设定文字的字体等 */ public void setFont(String fontStyle, int fontSize) { this.fontsize = fontSize; this.font = new Font(fontStyle, Font.PLAIN, fontSize); } /** * 修改图片,返回修改后的图片缓冲区(只输出一行文本) */ public BufferedImage modifyImage(BufferedImage img, Object content, int x, int y) { try { int w = img.getWidth(); int h = img.getHeight(); g = img.createGraphics(); g.setBackground(Color.WHITE); g.setColor(new Color(120, 120, 110));//设置字体颜色 if (this.font != null) g.setFont(this.font); if (content != null) { g.translate(w / 2, h / 2); g.rotate(8 * Math.PI / 180); g.drawString(content.toString(), x, y); } g.dispose(); } catch (Exception e) { System.out.println(e.getMessage()); } return img; } /** * 修改图片,返回修改后的图片缓冲区(只输出一行文本) * * 时间:2007-10-8 * * @param img * @return */ public BufferedImage modifyImageYe(BufferedImage img) { try { int w = img.getWidth(); int h = img.getHeight(); g = img.createGraphics(); g.setBackground(Color.WHITE); g.setColor(Color.blue);//设置字体颜色 if (this.font != null) g.setFont(this.font); g.drawString("www.hi.baidu.com?xia_mingjian", w - 85, h - 5); g.dispose(); } catch (Exception e) { System.out.println(e.getMessage()); } return img; } public BufferedImage modifyImagetogeter(BufferedImage b, BufferedImage d) { try { int w = b.getWidth(); int h = b.getHeight(); g = d.createGraphics(); g.drawImage(b, 100, 10, w, h, null); g.dispose(); } catch (Exception e) { System.out.println(e.getMessage()); } return d; } public static void main(String[] args) { PrintImage tt = new PrintImage(); BufferedImage d = tt.loadImageLocal("D:\\test\\ggl.jpg"); String Cname = "寒洛"; tt.modifyImage(d, Cname+" 先生", -299, -250); tt.writeImageLocal("D:\\test\\cc.jpg", d); System.out.println("success"); } }
相关文章推荐
- java给图片添加小图片和文本信息
- java.io.PrintWriter 中 write() 与 print() 的区别
- Thinking In Java 读书笔记
- JAVA基础拾遗
- eclipse安装lombok插件
- [JAVA关键字] synchronized
- Spring对AOP的支持
- Spring 定时任务执行两次 解决办法
- JAVA各种数据类型简介
- JAVA常识积累
- Spring使用facotry-method创建单例Bean总结<转>
- 练习JTree,Java SE所有类
- java文件大小限制及其解决方案
- MyEclipse设置JVM内存
- java: TreeSet的使用
- Eclipse 日常开发中的一些问题处理汇总
- Spring4.0学习笔记--整合Hibernate
- Struts2常用标签总结
- java 多线程的40个问题总结
- java文件上传