-
2021-04-17 09:43:42
public static void many2one(ListbookFilePaths, String toPath,String distFileName) {
if (bookFilePaths != null && bookFilePaths.size() > 0) {
File[] files = new File[bookFilePaths.size()];
for(int i = 0; i < bookFilePaths.size(); i++){
files[i] = new File(bookFilePaths.get(i));
}
if (files != null && files.length > 0) {
try {
ArrayList pages = new ArrayList(files.length - 1);
FileSeekableStream[] stream = new FileSeekableStream[files.length];
for (int i = 0; i < files.length; i++) {
stream[i] = new FileSeekableStream(
files[i].getCanonicalPath());
}
ParameterBlock pb = (new ParameterBlock());
PlanarImage firstPage = JAI.create("stream", stream[0]);
for (int i = 1; i < files.length; i++) {
PlanarImage page = JAI.create("stream", stream[i]);
pages.add(page);
}
TIFFEncodeParam param = new TIFFEncodeParam();
File f = new File(toPath);
if(!f.exists()){
f.mkdirs();
}
OutputStream os = new FileOutputStream(toPath + File.separator+ distFileName);
ImageEncoder enc = ImageCodec.createImageEncoder("tiff",
os, param);
param.setExtraImages(pages.iterator());
enc.encode(firstPage);
for (int i = 0; i < files.length; i++) {
stream[i].close();
if(files[i].isFile()&&files[i].exists()){
files[i].delete();
}
}
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
更多相关内容 -
Java将多张图片合成为一张图像.rar
2019-07-10 09:45:02Java将多张图片合成为一张,类似于PhotoShop中的合成图片,将两张图片合成输出为一张JPG,两幅图像叠加在一起,这是个比较基础的Java图像合成的例子。在JAVA中实现图片合成,本例的实现核心代码如下: InputStream... -
java多张图片合成,图片拼接,图片上写字
2018-01-20 16:11:10图片工具类(多张图片合成,图片拼接,图片上写字),java语言实现 -
Java 多张图片合成一张 drawImage
2021-02-12 23:05:36package ...import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.FileOutpu...package com.yunfengtech.solution.business;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;public classTwopic{public static voidmain(String[] args){
File file= new File(".\\src\\image");
System.out.println(file.getAbsolutePath());try{
System.out.println(file.getCanonicalPath());
}catch(Exception e)
{
e.printStackTrace();
}
}public static voidmain(String[] args){try{
InputStream imagein1= new FileInputStream("D:/twopic/n01.bmp");
InputStream imagein2= new FileInputStream("D:/twopic/n02.bmp");
InputStream imagein3= new FileInputStream("D:/twopic/n03.bmp");
BufferedImage bg_image= new BufferedImage(192, 144, BufferedImage.TYPE_INT_BGR);
BufferedImage image1=ImageIO.read(imagein1);
BufferedImage image2=ImageIO.read(imagein2);
BufferedImage image3=ImageIO.read(imagein3);
Graphics g=bg_image.getGraphics();
g.drawImage(image1,0, 48, 48, 48,null);
g.drawImage(image2,48, 48, 48, 48,null);
g.drawImage(image3,96, 48, 48, 48,null);
OutputStream outImage= new FileOutputStream("D:/twopic/playitemid_1_2.bmp");
JPEGImageEncoder enc=JPEGCodec.createJPEGEncoder(outImage);
enc.encode(bg_image);
imagein1.close();
imagein2.close();
imagein3.close();
outImage.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
-
Java多张图片合成一张(横向或竖向)
2020-03-02 17:46:37代码说话 package ... import sun.misc.BASE64Decoder; import javax.imageio.ImageIO; import java.awt.*;...import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import ...代码说话
package com.example.demo.image; import sun.misc.BASE64Decoder; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import java.io.UncheckedIOException; import java.util.ArrayList; import java.util.List; public class PicImageTest { public static void main(String[] args) throws Exception{ List<File> files = new ArrayList<>(); File file1 = new File("D:/1.jpg"); File file2 = new File("D:/11.jpg"); files.add(file1); files.add(file2); String path = "D:/222.jpg"; mergeHorizontal(files, path); } //竖向合成 public static void mergeVertical(List<File> files, String path){ try { Integer allWidth = 0; //计算画布总宽 Integer allHeight = 0; //计算画布总高 List<BufferedImage> imgs = new ArrayList<>(); for(int i=0; i<files.size(); i++){ imgs.add(ImageIO.read(files.get(i))); //因为是竖向合成,拿图片里最大的一个宽度就行 allWidth = Math.max(allWidth,imgs.get(i).getWidth()); allHeight += imgs.get(i).getHeight(); } BufferedImage combined = new BufferedImage(allWidth, allHeight,BufferedImage.TYPE_INT_RGB); Graphics g = combined.getGraphics(); //设置画布背景颜色 ,默认黑色 g.setColor(Color.white); g.fillRect(0, 0, allWidth, allHeight); Integer height = 0; for(int i=0; i< imgs.size(); i++){ g.drawImage(imgs.get(i), 0, height,null); //+10为了设置上下两个图片间距 height += imgs.get(i).getHeight()+10; } ImageIO.write(combined, "jpg", new File(path)); System.out.println("===合成成功===="); } catch (Exception e) { System.out.println("===合成失败===="); e.printStackTrace(); } } //横向合成 public static void mergeHorizontal(List<File> files, String path){ try { Integer allWidth = 0; Integer allHeight = 0; List<BufferedImage> imgs = new ArrayList<>(); for(int i=0; i<files.size(); i++){ imgs.add(ImageIO.read(files.get(i))); allHeight = Math.max(allHeight,imgs.get(i).getHeight()); allWidth += imgs.get(i).getWidth(); } BufferedImage combined = new BufferedImage(allWidth, allHeight, BufferedImage.TYPE_INT_RGB); Graphics g = combined.getGraphics(); g.setColor(Color.white); g.fillRect(0, 0, allWidth, allHeight); Integer width = 0; for(int i=0; i< imgs.size(); i++){ g.drawImage(imgs.get(i), width, 0, null); //设置横向间距 width += imgs.get(i).getWidth()+10; } ImageIO.write(combined, "jpg", new File(path)); System.out.println("===合成成功===="); } catch (Exception e) { System.out.println("===合成失败===="); e.printStackTrace(); } } //字符串类型图片转换 public static BufferedImage base64StringToImg(String base64String) { try { byte[] bytes = Base64.getDecoder().decode(data); ByteArrayInputStream in = new ByteArrayInputStream(bytes); return ImageIO.read(in); } catch (final IOException ioe) { throw new UncheckedIOException(ioe); } } }
-
利用Java程序把多张图片合成一张图片
2008-11-10 11:59:12利用Java程序把多张图片合成一张图片,利用Java程序把多张图片合成一张图片。 -
java实现图片合成功能,两张图片合成一张
2021-05-08 14:06:23将这两张图片合成一张图片到本地,代码如下: package org.example.test; import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import...首先弄两张图片,如下:
将这两张图片合成一张图片到本地,代码如下:
package org.example.test; import javax.imageio.ImageIO; import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.WritableRaster; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; /** * 把两张图片合并一张 */ public class Picture { /** * 压缩图片 */ private static BufferedImage resize(BufferedImage source, int targetW, int targetH) { // targetW,targetH分别表示目标长和宽 int type = source.getType(); BufferedImage target = null; int width = source.getWidth(); int height = source.getHeight(); double sx = (double) targetW / width; double sy = (double) targetH / height; // 这里想实现在targetW,targetH范围内实现等比缩放 if (sx > sy) { sx = sy; targetW = (int) (sx * source.getWidth()); } else { sy = sx; targetH = (int) (sy * source.getHeight()); } if (type == BufferedImage.TYPE_CUSTOM) { ColorModel cm = source.getColorModel(); WritableRaster raster = cm.createCompatibleWritableRaster(targetW, targetH); boolean alphaPremultiplied = cm.isAlphaPremultiplied(); target = new BufferedImage(cm, raster, alphaPremultiplied, null); } else { target = new BufferedImage(targetW, targetH, type); } Graphics2D g = target.createGraphics(); // smoother than exlax: g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy)); g.dispose(); return target; } /** * 待合并的两张张图必须满足这样的前提,如果水平方向合并,则高度必须相等;如果是垂直方向合并,宽度必须相等。 * * @param img1 待合并的第一张图 * @param img2 带合并的第二张图 * @return 返回合并后的BufferedImage对象 */ private static BufferedImage mergeImage(BufferedImage img1, BufferedImage img2) { int w1 = img1.getWidth(); int h1 = img1.getHeight(); int w2 = img2.getWidth(); Graphics2D graphics2D = null; // 生成新图片 BufferedImage destImage = null; destImage = new BufferedImage(w1 + w2, h1, BufferedImage.TYPE_INT_RGB); graphics2D = destImage.createGraphics(); graphics2D.drawImage(img1, 0, 0, w1, h1, null); graphics2D.drawImage(img2, w1, 0, w2, h1, null); graphics2D.dispose(); return destImage; } /** * 生成新图片到本地 */ public static 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 static void main(String[] args) throws Exception { InputStream is1 = new FileInputStream("D:\\photo\\01_皖R6982_20200620082639_1636A_77_60_1.jpg"); InputStream is2 = new FileInputStream("D:\\photo\\01_皖R6982_20200620082639_1636A_77_60_2.jpg"); BufferedImage readImg1 = ImageIO.read(is1); BufferedImage readImg2 = ImageIO.read(is2); // 图像压缩 保证每张图片大小一致 int width = readImg1.getWidth(); int height = readImg1.getHeight(); readImg2 = resize(readImg2, width, height); BufferedImage mergeImg = mergeImage(readImg1, readImg2); writeImageLocal("D:\\photo\\new.jpg", mergeImg); } }
成功合成一张图片,结果如下:
-
Java多张小图合成一张大图
2014-02-24 17:19:58java 程序将多张小图合成一张大图 适合css样式将多个小图合成大图 -
java图片处理——多张图片合成一张Gif图片并播放或Gif拆分成多张图片
2021-02-26 13:59:391、多张jpg图合成gif动画/*** 把多张jpg图片合成一张*@parampic String[] 多个jpg文件名 包含路径*@paramnewPic String 生成的gif文件名 包含路径*/private synchronized voidjpgToGif(String pic[], String newPic)... -
Java实现多张图片合并一张
2021-10-26 14:34:22Java代码实现多张图片合并一张,这个还是挺常用到的。 -
使用java将几张图片合成一张图片
2020-04-23 10:54:38背景描述:最近在做app推送消息,在做管住人推送需要把有更新的关注人头像合成一张图片,展示示例如下: 花了一些时间来弄这个,之前没做... * @Description: 将几张图片合成一张图片 * @param: @param b1 *... -
java 将两张相片合成一张,开发实用类
2021-02-12 09:43:43实现将两压缩好的图片 写在一张画布上思路,先成一个足够大的画布 放入两张相片以下代码需要改进import java.awt.AlphaComposite;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.... -
Java实现将两张图片合成一张图片,并且实现批量下载
2020-05-09 09:55:19import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; public class ImageMerging { private Font font = new Font("微软雅黑", ... -
Java多张图片合成PDF
2021-02-26 11:28:58importcom.itextpdf.text.Document;importcom.itextpdf.text.Image;importcom.itextpdf.text.Rectangle;importcom.itextpdf.text.pdf....importjava.io.File;importjava.io.FileOutputStream;importorg.apach... -
Java实现PDF转图片,多张合成一张图片功能
2020-12-01 16:10:12import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File;...import java.util.. -
java pdf转jpg 多张图片合成一张
2020-12-15 09:33:22//pdf转jpg,多张jpg合一 //PDF使用到了jacob.jar @Test public void demo5 () throws Exception { String pathpdf = "C:\\Users\\lenovo\\Desktop\\文档.pdf"; File file = new File(pathpdf); if(file.... -
java多张图片合成
2019-08-01 15:22:45以下代码可直接使用,欢迎大家一起交流。 ... import java.awt.Graphics; import java.awt.Image;...import java.awt.image.BufferedImage;...import java.io.File;...import java.io.FileOutputStream...import java.util.Ar... -
多张图片合成一张图片工具
2014-10-27 18:47:55一款强大的将多张图片合成一张图片工具,图片的像素异动小 -
java 对图片的添加文字描述,以及两张图片合成一张
2019-05-17 15:15:00最近公司一个需要,需要把商品的优惠卷分享链接,生成一个二维码然后和商品主图合成一张,并且在新合成的主图增加商品信息的描述,好了直接看合成后图片的样式 下面我就直接贴代码,首先是Contorller层 /** ... -
java代码合成多张图片成一张
2018-05-12 09:59:09将多张图片合成一张,不多说直接上代码:注意当图片宽度不同时会报数组下标异常。 /** * *@类功能说明:java拼接多张图片,生成的格式是jpg、bmp、gif等, * 如果其他格式则报错或者photoshop或者画图工具打不... -
Java小知识:多张图片合并成一张
2022-04-12 16:46:24本文就以jpg图片为例吧: /** * 功能描述:多个jpg文件合并成一个jpg到本地 * * @author songchengye * @date 2022/4/7 下午2:26 */ public static File jpgsToJpg(String newFileName, String... ... -
java将多张图片合成视频
2018-10-25 21:48:50java将多张图片合成视频 需求 近几天,无聊就看看抖音,视频信息传播信息,相亲去抖音,网红去抖音,秀恩爱去抖音。。。走在大街上,几个小妹妹拿着手机自拍干是玩抖音还是直播呢?每个人都想当导演的梦,但又没DV... -
java将两张图片合成
2021-03-12 10:22:37将两张图片合成一张新的图片/*** 图片合成** @param backgroundPath 底图* @param smallPath 小图* @param type 生成图片类型jpg,png...* @param resultPath 生成图片保存路径*/public static void image(String ... -
图片处理工具(java实现图片合成、文字添加等)
2018-05-18 11:12:40通过java实现对图片的进行合成处理,合成过程可制定位置,主要场景例如生成工作证或者胸牌 -
java实现把文字和图片合成一张图片
2021-03-05 12:32:54import java.awt.*;import java.io.*;import java.awt.image.*;import com.sun.image.codec.jpeg.*;import javax.imageio.*;public class ImgBean{public void ImgBean(){}public static void ImgYin(String s,Strin... -
利用java代码将二张图片合成一张图片
2019-02-22 17:10:46import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public c... -
Java实现把三张图片合成一个图片
2020-04-15 20:21:42Java把三张图片合成一个 商城业务中的客户分享,以及分销需要给客户生成一个推广图片 代码: public String getAngentImgUrl(Spread spread) { String fileName= UUID.randomUUID() +String.valueOf(spread.... -
通过BufferedImage实现将几张图片合成一张图片,图片效果类型为依次排列图片
2014-07-19 16:01:46所实现的效果是首先给你四张已经由ps处理过的图片,然后通过重新将这四张图还原