Java 图片合并类详解编程语言
2023-06-13 09:20:29 时间
public BufferedImage marge(String first, String last, boolean isVertical) {
BufferedImage one = this.readImage(first);
BufferedImage two = this.readImage(last);
if (isVertical) {
return this.mergeTwoImageByVertical(one, two);
} else {
return this.mergeTwoImageByHorizontal(one, two);
public void saveImage(String savePath, BufferedImage image) {
try {
File file = new File(savePath);
ImageIO.write(image, "jpg", file);// 写图片
} catch (IOException ex) {
ex.printStackTrace();
private BufferedImage mergeTwoImageByVertical(BufferedImage one, BufferedImage two) {
int width = this.getWidth(one);
int height = this.getHeight(one);
int[] oneRPG = this.readImageRPG(one);
int[] twoRPG = this.readImageRPG(two);
BufferedImage result = new BufferedImage(width, height * 2, BufferedImage.TYPE_INT_RGB);
result.setRGB(0, 0, width, height, oneRPG, 0, width);
result.setRGB(0, height, width, height, twoRPG, 0, width);
return result;
private BufferedImage mergeTwoImageByHorizontal(BufferedImage one, BufferedImage two) {
int width = this.getWidth(one);
int height = this.getHeight(one);
int[] oneRPG = this.readImageRPG(one);
int[] twoRPG = this.readImageRPG(two);
BufferedImage result = new BufferedImage(width * 2, height, BufferedImage.TYPE_INT_RGB);
result.setRGB(0, 0, width, height, oneRPG, 0, width);
result.setRGB(width, 0, width, height, twoRPG, 0, width);
return result;
private int[] readImageRPG(BufferedImage image) {
int width = this.getWidth(image);
int height = this.getHeight(image);
int[] imageRPG = new int[width * height];// 从图片中读取RGB
imageRPG = image.getRGB(0, 0, width, height, imageRPG, 0, width);
return imageRPG;
private int getWidth(BufferedImage image) {
if (image == null) {
return 0;
return image.getWidth();
private int getHeight(BufferedImage image) {
if (image == null) {
return 0;
return image.getHeight();
private BufferedImage readImage(String path) {
try {
File file = new File(path);
return ImageIO.read(file);
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
来自:http://my.oschina.net/u/2370543/blog/487821
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10572.html
cjava相关文章
- 【Java AWT 图形界面编程】事件处理机制 ① ( 事件处理步骤 | 创建事件源对象 -> 自定义事件监听器 -> 创建监听器实例对象 -> 事件源绑定事件监听器 )
- Java操作日期时间的工具类详解编程语言
- java中 set,list,array互转详解编程语言
- java cookie操作的封装 常用判断方法的封装详解编程语言
- Java时间计算和比较详解编程语言
- Java获取客户端真实IP地址的两种方法详解编程语言
- java基础学习总结——开篇详解编程语言
- Java中的 多线程编程详解编程语言
- java 多线程和线程池详解编程语言
- Java调用支付宝支付接口详解编程语言
- Java命令行解析库 Argparse4j详解编程语言
- java对cookie的操作详解编程语言
- java中如何高效判断数组中是否包含某个特定的值详解编程语言
- Java List/Set/Map详解编程语言
- Java并发编程之并发代码设计详解编程语言
- java:提示Could not initialize class sun.awt.X11GraphicsEnvironment详解编程语言
- Java NIO(2):NIO概述详解编程语言
- java 监听文件或文件夹变化详解编程语言
- java 解析 json 遍历未知key详解编程语言
- 基于Linux操作系统上实现 Java 编程(linux r java)
- 并发Redis锁保障Java并发性(redis锁实现java)