java盒图_java合成图片
package com.pbids.sanqin.util;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class PicUtil {
private Font font = new Font("宋体", Font.PLAIN, 12); // 添加字体的属性设置
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, "png", 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;
}
/**
* 合成图片
* @param addImage
* @param originalImage
* @return
*/
public BufferedImage modifyImagetogeter(BufferedImage addImage, BufferedImage originalImage) {
try {
/* int w = d.getWidth();
int h = d.getHeight();*/
g = originalImage.createGraphics();
g.drawImage(addImage, 593, 1875, 335, 335, null);
g.dispose();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return originalImage;
}
/**
* 图片合成
* @param
* @param
*/
/* public static final void overlapImage(String bigPath, String smallPath) {
try {
BufferedImage big = ImageIO.read(new File(bigPath));
BufferedImage small = ImageIO.read(new File(smallPath));
Graphics2D g = big.createGraphics();
int x = (big.getWidth() - small.getWidth()) / 2;
int y = (big.getHeight() - small.getHeight()) / 2;
g.drawImage(small, x, y, small.getWidth(), small.getHeight(), null);
g.dispose();
ImageIO.write(big, "png", new File("D/aa/jack.png"));
System.out.println("成功");
} catch (Exception e) {
e.printStackTrace();
}
}*/
public static void main(String[] args) {
PicUtil tt = new PicUtil();
BufferedImage addImage = tt.loadImageLocal("D:/new.png");
BufferedImage originalImage = tt.loadImageLocal("D:/aa/bg.png");
//往图片上写文件
// overlapImage("D:/aa/bg.png", "D:/new.png");
//将多张图片合在一起tt.writeImageLocal("D:/aa/cc.png", tt.modifyImagetogeter(addImage, originalImage));
System.out.println("success");
}
}
java盒图_java合成图片相关推荐
- java盒图_Java图形化界面设计——布局管理器之BoxLayout布局(盒式布局)
允许垂直或水平布置多个组件的布局管理器.这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列. 用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLay ...
- java thumbnails 中心点_java Thumbnails 图片处理的使用
在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过 ...
- java折线图_Java系列:JFreeChart在线制作折线图
一.概述: JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计.JFr ...
- java照片拍摄时间_java读取图片的(尺寸、拍摄日期、标记)等EXIF信息
主要代码如下: package com.test; import java.io.File; import java.io.IOException; import java.util.Iterator ...
- java走势图_JAVA 如何实现WEB上曲线走势图
转载自:http://www.xrss.cn/Dev/JAVA/200792816836.Html 实现非常简单,例子主要有3个类,ImageContainer.java 在内存中保存动态走势图,Im ...
- java image 透明_Java实现图片透明效果
Java实现图片透明效果,从演示截图可看到,上层图片与下层图片互相重叠,也就是上层图片透明了,看到了下层以的图片,具体的代码实现: public class HalfTransparentImageD ...
- java 雪花特效_java实现图片飘雪花的特效
一)制作要点 1.多线程的使用 2.类java.util.Random的使用 (二)嵌入Applet的HTML页面源代码 SnowPic 注意:上面的图片中java的类名为SnowPic 注意大小写, ...
- java 水印 位置_Java实现图片加水印且控制位置和透明度
Java实现图片加水印且控制位置和透明度 昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下: package org.guhao; import ...
- java io图_JAVA IO流结构图
InputStreamReader和OutputStreamWriter分别继承自java.io包中的Reader和Writer,对他们中的抽象的未实现的方法给出实现.如: public int re ...
最新文章
- 如何用LogQL在几秒内查询TB级的日志
- 某女网友吐槽:大厂程序员男友太忙,天天当望夫石或者床头灯!已分手!
- linux 命令 grep -A -B -C 显示行选项
- CRM WebClient UI页面的跳转处理
- python assert断言的用法
- java 字符串子串_java实现字符串匹配求两个字符串的最大公共子串
- 利用fiddler给android模拟器抓包
- 关于 RGB 的颜色认知
- webpack 中的 watch cache (下)
- python怎么做软件程序_Revit二次开发python怎么做?人工智能python语言在BIM软件高效建模的运用尝试...
- c语言三级试题及答案,2013年计算机二级C语言模拟试题五及答案
- daysmatter安卓版_days matter
- VC++ (MFC)调用 C#生成DLL的两种方法
- iOS Block(一)
- 入门程序员如何写博客
- vmware输入序列号老是不能注册问题
- 关于ubuntu20.04通过Software and updates安装NVIDIA驱动
- 一个故事带你了解集线器、交换机与路由器
- Qt Style Sheets(QSS)参考
- oracle批量清除会话,oracle快速彻底清理kill会话
热门文章
- websocket 学习--简单使用,nodejs搭建websocket服务器,到模拟股票,到实现聊天室
- java调用c so动态库_jni 调用C动态库dll/so
- Linux查看lvm元数据,LVM元数据服务lvmetad分析
- python教学视频r_R Tutorial
- java if两个条件_java(3) if结构
- 使用 Akka 实现 Master 与 Worker 之间的通信
- springsession分布式登录被覆盖_拉勾 分布式 学习小结
- linux 登入用户记录,linux记录所有用户登陆及执行过的命令脚本
- Maven学习(六)————企业Maven项目最佳实践
- Collection框架介绍