精华内容
下载资源
问答
  • java多张图片合成一张tif图片
    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多张图片合成为一张,类似于PhotoShop中的合成图片,将两张图片合成输出为一张JPG,两幅图像叠加在一起,这是个比较基础的Java图像合成的例子。在JAVA中实现图片合成,本例的实现核心代码如下:  InputStream...
  • 图片工具类(多张图片合成图片拼接,图片上写字),java语言实现
  • package ...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();

    }

    }

    }

    展开全文
  • 代码说话 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程序把多张图片合成一张图片,利用Java程序把多张图片合成一张图片
  • 将这两张图片合成一张图片到本地,代码如下: 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 程序将多张小图合成一张大图 适合css样式将多个小图合成大图
  • 1、多张jpg图合成gif动画/*** 把多张jpg图片合成一张*@parampic String[] 多个jpg文件名 包含路径*@paramnewPic String 生成的gif文件名 包含路径*/private synchronized voidjpgToGif(String pic[], String newPic)...
  • Java实现多张图片合并一张

    千次阅读 2021-10-26 14:34:22
    Java代码实现多张图片合并一张,这个还是挺常用到的。
  • 使用java将几张图片合成一张图片

    千次阅读 2020-04-23 10:54:38
    背景描述:最近在做app推送消息,在做管住人推送需要把有更新的关注人头像合成一张图片,展示示例如下: 花了一些时间来弄这个,之前没做... * @Description: 将几张图片合成一张图片 * @param: @param b1 *...
  • 实现将两压缩好的图片 写在一张画布上思路,先成一个足够大的画布 放入两相片以下代码需要改进import java.awt.AlphaComposite;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image....
  • import 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:58
    importcom.itextpdf.text.Document;importcom.itextpdf.text.Image;importcom.itextpdf.text.Rectangle;importcom.itextpdf.text.pdf....importjava.io.File;importjava.io.FileOutputStream;importorg.apach...
  • import 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..
  • //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...
  • 一款强大的将多张图片合成一张图片工具,图片的像素异动小
  • 最近公司一个需要,需要把商品的优惠卷分享链接,生成一个二维码然后和商品主图合成一张,并且在新合成的主图增加商品信息的描述,好了直接看合成后图片的样式 下面我就直接贴代码,首先是Contorller层 /** ...
  • java代码合成多张图片成一张

    千次阅读 2018-05-12 09:59:09
    多张图片合成一张,不多说直接上代码:注意当图片宽度不同时会报数组下标异常。 /** * *@类功能说明:java拼接多张图片,生成的格式是jpg、bmp、gif等, * 如果其他格式则报错或者photoshop或者画图工具打不...
  • 本文就以jpg图片为例吧: /** * 功能描述:个jpg文件合并成一个jpg到本地 * * @author songchengye * @date 2022/4/7 下午2:26 */ public static File jpgsToJpg(String newFileName, String... ...
  • java多张图片合成视频

    千次阅读 2018-10-25 21:48:50
    java多张图片合成视频 需求 近几天,无聊就看看抖音,视频信息传播信息,相亲去抖音,网红去抖音,秀恩爱去抖音。。。走在大街上,几个小妹妹拿着手机自拍干是玩抖音还是直播呢?每个人都想当导演的梦,但又没DV...
  • java将两张图片合成

    2021-03-12 10:22:37
    将两张图片合成一张新的图片/*** 图片合成** @param backgroundPath 底图* @param smallPath 小图* @param type 生成图片类型jpg,png...* @param resultPath 生成图片保存路径*/public static void image(String ...
  • 通过java实现对图片的进行合成处理,合成过程可制定位置,主要场景例如生成工作证或者胸牌
  • import 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...
  • import 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:42
    Java把三张图片合成一个 商城业务中的客户分享,以及分销需要给客户生成一个推广图片 代码: public String getAngentImgUrl(Spread spread) { String fileName= UUID.randomUUID() +String.valueOf(spread....
  • 所实现的效果是首先给你四已经由ps处理过的图片,然后通过重新将这四张图还原

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,851
精华内容 2,340
关键字:

java多张图片合成一张

java 订阅