Java Image合并
来源:互联网 发布:连城诀 知乎 编辑:程序博客网 时间:2024/06/05 20:22
import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import org.junit.Test;public class MergeImageUtils {/** * 将两张图片合并为一张图片 * @param oneSrc * @param twoSrc * @param mergeSrc 合并后的图片路径 */public void mergeImage(String oneSrc, String twoSrc, String mergeSrc) {String postFix = mergeSrc.substring(mergeSrc.lastIndexOf(".") + 1, mergeSrc.length());try {File fileOne = new File(oneSrc);//读取第一张图片Image src = ImageIO.read(fileOne); int width = src.getWidth(null);int height = src.getHeight(null);if(width > 900 || height > 900) {int num = (int) Math.ceil((double)width/900);int num2 = (int) Math.ceil((double)height/900);num = num > num2 ? num : num2;width = width/num;height = height/num;} BufferedImage bufferedImageOne = null;if ("png".equalsIgnoreCase(postFix.toLowerCase())) {bufferedImageOne = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);} else {bufferedImageOne = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);}bufferedImageOne.getGraphics().drawImage(src.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);int[] imageArrayOne = new int[width * height];// 从图片中读取RGBimageArrayOne = bufferedImageOne.getRGB(0, 0, width, height, imageArrayOne, 0, width);File fileTwo = new File(twoSrc);//读取第二张图片src = ImageIO.read(fileTwo); BufferedImage bufferedImageTwo = null;if ("png".equalsIgnoreCase(postFix.toLowerCase())) {bufferedImageTwo = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);} else {bufferedImageTwo = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);}bufferedImageTwo.getGraphics().drawImage(src.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);int[] imageArrayTwo = new int[width * height];// 从图片中读取RGBimageArrayTwo = bufferedImageTwo.getRGB(0, 0, width, height, imageArrayTwo, 0, width);//生成新图片BufferedImage imageNew = new BufferedImage(width*2, height, BufferedImage.TYPE_INT_RGB);imageNew.setRGB(0 , 0, width, height, imageArrayOne, 0, width);//设置左半部分的RGBimageNew.setRGB(width, 0, width, height, imageArrayTwo, 0, width);//设置右半部分的RGBFile outFile = new File(mergeSrc);//写图片ImageIO.write(imageNew, postFix, outFile);} catch (Exception e) {e.printStackTrace();}} @Test public void testMergeImage(){ mergeImage("D:/source/image/1.jpg", "D:/source/image/2.png", "D:/source/image/3.png");}}
0 0
- Java Image合并
- image 合并
- c# 合并图片 image
- java image
- C#合并保存多个图片Image
- [Python开发] python使用Image合并图像
- java image url
- java copy image
- find image .java ------------android
- JAVA生成直方图Image
- load image (java )
- Java Image CMYK2RGB
- [Leetcode] Rotate Image (Java)
- java 字符串转image
- Rotate Image Java
- Rotate Image (Java)
- 轮子---java返回image
- [LeetCode][Java] Rotate Image
- 对数极坐标
- 点滴积累1
- POJ1274(匈牙利算法)
- DIV+CSS实操一:经管系网页总体模块布局
- 转化那些事
- Java Image合并
- oracle sql 日期 case when where
- session cookie 原理
- SSH:Struts1框架(自定义标签函数库)
- C#导出excel图表(使用ChartWizard)
- ArrayList和LinkedList比较
- Spark1.5.2 on yarn fair scheduler 配置
- 事故板(storyboard)部分知识一
- 一个动作、两行命令,去掉文件的权限拦路虎