java向图片上写字,两个图片合并的方法
来源:互联网 发布:java输出乘法口诀表 编辑:程序博客网 时间:2024/04/29 05:23
代码:
package writeimg;import javax.imageio.ImageIO;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;public class pic {private Font font = new Font("华文彩云", Font.PLAIN, 40);// 添加字体的属性设置private Graphics2D g = null;private int fontsize = 0;private int x = 0;private int y = 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(Color.orange);//设置字体颜色if (this.font != null)g.setFont(this.font);// 验证输出位置的纵坐标和横坐标if (x >= h || y >= w) {this.x = h - this.fontsize + 2;this.y = w;} else {this.x = x;this.y = y;}if (content != null) {g.drawString(content.toString(), this.x, this.y);}g.dispose();} catch (Exception e) {System.out.println(e.getMessage());}return img;}/** * 修改图片,返回修改后的图片缓冲区(输出多个文本段) xory:true表示将内容在一行中输出;false表示将内容多行输出 */public BufferedImage modifyImage(BufferedImage img, Object[] contentArr,int x, int y, boolean xory) {try {int w = img.getWidth();int h = img.getHeight();g = img.createGraphics();g.setBackground(Color.WHITE);g.setColor(Color.RED);if (this.font != null)g.setFont(this.font);// 验证输出位置的纵坐标和横坐标if (x >= h || y >= w) {this.x = h - this.fontsize + 2;this.y = w;} else {this.x = x;this.y = y;}if (contentArr != null) {int arrlen = contentArr.length;if (xory) {for (int i = 0; i < arrlen; i++) {g.drawString(contentArr[i].toString(), this.x, this.y);this.x += contentArr[i].toString().length()* this.fontsize / 2 + 5;// 重新计算文本输出位置}} else {for (int i = 0; i < arrlen; i++) {g.drawString(contentArr[i].toString(), this.x, this.y);this.y += this.fontsize + 2;// 重新计算文本输出位置}}}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) {pic tt = new pic();BufferedImage d = tt.loadImageLocal("D:\\11.jpg");//BufferedImage b = tt//.loadImageLocal("E:\\文件(word,excel,pdf,ppt.txt)\\zte-logo.png"); tt.writeImageLocal("D:\\cc.jpg",tt.modifyImage(d,"曹原",90,90)//往图片上写文件 );//tt.writeImageLocal("D:\\cc.jpg", tt.modifyImagetogeter(b, d));//将多张图片合在一起System.out.println("success");}}
- java向图片上写字,两个图片合并的方法
- UIGraphics 向图片上写字
- 一个在图片上写字的方法
- java实现向图片上写字并合并图片,可以自己做高清壁纸
- c#图片上写字
- 在图片上写字
- 图片上写字
- 如何在上传的图片上写字
- 如何在上传的图片上写字
- 如何在上传的图片上写字
- java合成两张图片并在图片上写字
- php 绘图合并两张jpg图片 并在图片上写字
- 二、文字转成图片,图片上写字
- winform中在图片上写字
- 在图片上写字 (C#)
- 利用php在图片上写字(中英文)
- 在一个图片上写字并保存
- matlab在图片上写字后保存
- * 连接VC程序总是提示在某某库中已经定义了该方法,程序无法正确连接!
- Linux下makefile教程
- 中国礼节
- 权限系统概要
- C# 获取天气的信息
- java向图片上写字,两个图片合并的方法
- android菜鸟学习笔记.关于虚拟机里面的ubuntu 文件夹共享给windows XP的拷贝不出来的问题
- 改变VC++应用程序单文档标题图标
- 用到poi对word的读写,现在我想从1.doc中读取内容,然后修给其中的内容,再把内容写到2.doc中,要保留内容的样式,比如字体大小,内容排版,表格
- 加快make速度的2个方案预编译头与ccache的比较
- js 回车运行
- MyEclipse中Hibernate+C3P0连接池配置
- 特征选择方法之信息增益
- 存储过程删除大量数据