精华内容
下载资源
问答
  • java两张图片合成
    2021-03-12 10:22:37

    将两张图片合成一张新的图片

    /**

    * 图片合成

    *

    * @param backgroundPath 底图

    * @param smallPath 小图

    * @param type 生成图片类型jpg,png...

    * @param resultPath 生成图片保存路径

    */

    public static void image(String backgroundPath, String smallPath, String type, String resultPath) {

    try {

    Assert.hasText(backgroundPath, "底图路径为空");

    Assert.hasText(smallPath, "小图路径为空");

    BufferedImage small = getBufferedImageFromUrl(smallPath);

    BufferedImage image = getBufferedImageFromUrl(backgroundPath);

    //生成画笔

    Graphics g = image.getGraphics();

    g.drawImage(small, 230, 600,

    small.getWidth()*2, small.getHeight()*2, null);

    ImageIO.write(image, type, new File(resultPath));

    } catch (IOException e) {

    throw new RuntimeException("合成图片失败", e);

    }

    /**

    * 根据图片url获取图片

    *

    * @param url

    * @return

    * @throws IOException

    */

    private static BufferedImage getBufferedImageFromUrl(String url) throws IOException {

    if (url.startsWith("https://") || url.startsWith("http://")) {

    return ImageIO.read(new URL(url));

    } else {

    return ImageIO.read(new File(url));

    }

    }

    测试类

    public static void main(String[] args) {

    image("xxx", "xxx", "png", "xxx");

    }

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

    成功合成一张图片,结果如下:

    在这里插入图片描述

    展开全文
  • 实现将两压缩好的图片 写在一张画布上思路,先成一个足够大的画布 放入两张相片以下代码需要改进import java.awt.AlphaComposite;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image....

    实现将两压缩好的图片 写在一张画布上

    思路,先成一个足够大的画布 放入两张相片

    以下代码需要改进

    import java.awt.AlphaComposite;

    import java.awt.Graphics2D;

    import java.awt.Image;

    import java.awt.image.BufferedImage;

    import java.io.File;

    import java.io.FileOutputStream;

    import javax.imageio.ImageIO;

    public class IMG {

    /**

    *

    * @param filesrc

    * @param logosrc

    * @param outsrc

    * @param x 位置

    * @param y 位置

    */

    public void composePic(String filesrc,String logosrc,String outsrc,int x,int y) {

    try {

    File bgfile = new File(filesrc);

    Image bg_src = javax.imageio.ImageIO.read(bgfile);

    File logofile = new File(logosrc);

    Image logo_src = javax.imageio.ImageIO.read(logofile);

    int bg_width = bg_src.getWidth(null);

    int bg_height = bg_src.getHeight(null);

    int logo_width = logo_src.getWidth(null);;

    int logo_height = logo_src.getHeight(null);

    BufferedImage tag = new BufferedImage(bg_width, bg_height, BufferedImage.TYPE_INT_RGB);

    Graphics2D g2d = tag.createGraphics();

    g2d.drawImage(bg_src, 0, 0, bg_width, bg_height, null);

    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,1.0f)); //透明度设置开始

    g2d.drawImage(logo_src,x,y,logo_width,logo_height, null);

    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER)); //透明度设置 结束

    FileOutputStream out = new FileOutputStream(outsrc);

    ImageIO.write(tag, "jpg", out);//写图片

    /* JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

    encoder.encode(tag);*/

    out.close();

    }catch (Exception e) {

    e.printStackTrace();

    }

    }

    public static void main(String args[]) {

    Long star = System.currentTimeMillis();

    IMG pic = new IMG();

    pic.composePic("f:\\7.jpg","f:\\6.jpg","f:\\out.jpg",490,360);

    Long end =System.currentTimeMillis();

    System.out.print("time====:"+(end-star));

    }

    }

    展开全文
  • 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("微软雅黑", ...
    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 ImageMerging {
        private Font font = new Font("微软雅黑", Font.PLAIN, 46); // 添加字体的属性设置
    
        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, "jpg", 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(new Color(255, 255, 255, 0));
                g.setColor(Color.WHITE);//设置字体颜色
                g.setFont(new Font("微软雅黑", Font.PLAIN, 46));
                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;
        }
    
        /**
         * 修改图片,返回修改后的图片缓冲区(只输出一行文本)
         * <p>
         * @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;
        }
    
        public BufferedImage modifyImagetogeter(BufferedImage b, BufferedImage d, int width, int height) {
            try {
                int w = b.getWidth();
                int h = b.getHeight();
                g = d.createGraphics();
                g.drawImage(b, width, height, w, h, null);
                g.dispose();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
            return d;
        }
    
    
    
        public static void main(String[] args) {
            ImageMerging tt = new ImageMerging();
            BufferedImage b = tt.loadImageLocal("E:\\image\\33.png");
            BufferedImage d = tt.loadImageLocal("E:\\image\\44.png");
            //往图片上写文件
            BufferedImage aaaaaaaa = tt.modifyImage(b, "勇衣小吃店", 578, 999);
            tt.writeImageLocal("E:\\image\\cc.jpg", tt.modifyImagetogeter(d, aaaaaaaa, 342, 218));
    
            //将多张图片合在一起  
            System.out.println("success");
        }
    
    }
    

    如果想要复用一张背景图片,并且想要每次给背景图片上面添加不同内容,那就需要将复用的背景图片进行拷贝,然后对副本进行拷贝,可以减少IO操作,提高效率。

    /**
         * BufferedImage拷贝
         * @param source
         * @return
         */
        public BufferedImage copyImage(BufferedImage source) {
            BufferedImage copyBufferedImage = new BufferedImage(source.getWidth(), source.getHeight(), source.getType());
            Graphics g = copyBufferedImage.getGraphics();
            g.drawImage(source, 0, 0, null);
            g.dispose();
            return copyBufferedImage;
        }
    
        /**
         * 批量生成照片时,如果背景图片是一个时,对其进行拷贝在修改。
         * @param pic ImageMerging  对象
         * @param unitName  需要添加的文字,
         * @param qRCode  需要合并的图片 这里是二维码
         * @param backgroundImage  背景图片
         * @return
         */
        public BufferedImage qRCodeGeneration(ImageMerging pic, String unitName, BufferedImage qRCode, BufferedImage backgroundImage, FontMetrics fontMetrics) {
        //FontMetrics fontMetrics= new JLabel().getFontMetrics(new Font("微软雅黑", Font.PLAIN, 46));
        	//计算文字的像素宽度  unitName是添加的字体
            int strWidth = fontMetrics.stringWidth(unitName);
    		//拷贝背景图片
            BufferedImage copyBufferedImage = copyImage(backgroundImage);
    		//往拷贝的背景图片上面添加文字,进行居中处理
    		//1400 是背景图片宽度
    		//1050 是设计字体距离背景图片顶部的距离
            BufferedImage backgroundAndName = pic.modifyImage(copyBufferedImage, unitName, (1400 - strWidth) / 2, 1050);
    		//将背景图片和二维码合并
            BufferedImage bufferedImage = pic.modifyImagetogeter(qRCode, backgroundAndName, 342, 218);
    
            return bufferedImage;
        }
    

    实现批量下载,和照片批量生成

    public void generateQRCode(@RequestParam(required = false) Long unitId, HttpServletResponse response) throws Exception {
            long start = System.currentTimeMillis();
            List<DrugUnitInfo> drugUnitList = new ArrayList<>();
            if (unitId == null) {
                drugUnitList = drugUnitInfoService.list();
            } else {
                DrugUnitInfo drugUnitInfo = drugUnitInfoService.getById(unitId);
                drugUnitList.add(drugUnitInfo);
            }
    
            String downloadFilename = "药品二维码";
            downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");
            ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
            response.setContentType("application/octet-stream");
            response.setHeader("Content-disposition", "attachment; filename=" + downloadFilename + ".zip");
            AtomicReference<BufferedImage> encode = new AtomicReference<>();
    
    
            ImageMerging pic = new ImageMerging();
            FontMetrics metrics = new JLabel().getFontMetrics(new Font("微软雅黑", Font.PLAIN, 46));
            BufferedImage backgroundImage = pic.loadImageLocal("E:\\image\\33.png");
            drugUnitList.forEach(i -> {
                if (!StringUtils.isEmpty(i.getUnitNo())) {
                    try {
                        encode.set(QRCodeUtil.encode(host + ":" + port + urlPrefix + i.getId(), null, true));
                        BufferedImage bufferedImage = pic.qRCodeGeneration(pic, i.getUnitName(), encode.get(), backgroundImage, metrics);
                        zos.putNextEntry(new ZipEntry(i.getUnitName() + ".png"));
                        ImageIO.write(bufferedImage, "png", zos);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            zos.flush();
            zos.close();
            long end = System.currentTimeMillis();
            System.out.println("执行完时间:" + (end - start));
        }
    

    完整版ImageMerging

    package com.swkj.smart.market.regulation.sysmanage.utils;
    
    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 ImageMerging {
        private Font font = new Font("微软雅黑", Font.PLAIN, 46); // 添加字体的属性设置
    
        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, "jpg", 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(new Color(255, 255, 255, 0));
                g.setColor(Color.WHITE);//设置字体颜色
                g.setFont(new Font("微软雅黑", Font.PLAIN, 46));
                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;
        }
    
        /**
         * 修改图片,返回修改后的图片缓冲区(只输出一行文本)
         * @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;
        }
    
        public BufferedImage modifyImagetogeter(BufferedImage b, BufferedImage d, int width, int height) {
            try {
                int w = b.getWidth();
                int h = b.getHeight();
                g = d.createGraphics();
                g.drawImage(b, width, height, w, h, null);
                g.dispose();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
            return d;
        }
    
        /**
         * BufferedImage拷贝
         * @param source
         * @return
         */
        public BufferedImage copyImage(BufferedImage source) {
            BufferedImage copyBufferedImage = new BufferedImage(source.getWidth(), source.getHeight(), source.getType());
            Graphics g = copyBufferedImage.getGraphics();
            g.drawImage(source, 0, 0, null);
            g.dispose();
            return copyBufferedImage;
        }
    
        /**
         * 批量生成照片时,如果背景图片是一个时,对其进行拷贝在修改。
         * @param pic
         * @param unitName
         * @param qRCode
         * @param backgroundImage
         * @param fontMetrics
         * @return
         */
        public BufferedImage qRCodeGeneration(ImageMerging pic, String unitName, BufferedImage qRCode, BufferedImage backgroundImage, FontMetrics fontMetrics) {
            int strWidth = fontMetrics.stringWidth(unitName);
    
            BufferedImage copyBufferedImage = copyImage(backgroundImage);
    
            BufferedImage backgroundAndName = pic.modifyImage(copyBufferedImage, unitName, (1400 - strWidth) / 2, 1050);
    
    
            BufferedImage bufferedImage = pic.modifyImagetogeter(qRCode, backgroundAndName, 342, 218);
    
            return bufferedImage;
        }
    
    
        public static void main(String[] args) {
            ImageMerging tt = new ImageMerging();
            BufferedImage b = tt.loadImageLocal("E:\\image\\33.png");
            BufferedImage d = tt.loadImageLocal("E:\\image\\44.png");
            //往图片上写文件
            BufferedImage aaaaaaaa = tt.modifyImage(b, "勇衣小吃店", 578, 999);
            tt.writeImageLocal("E:\\image\\cc.jpg", tt.modifyImagetogeter(d, aaaaaaaa, 342, 218));
    
            //将多张图片合在一起  
            System.out.println("success");
        }
    
    }
    
    展开全文
  • 利用Java程序把多图片合成一张图片,利用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 ... import sun.misc.BASE64Decoder; import javax.imageio.ImageIO; import java.awt.*;...import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import ...
  • 最近公司一个需要,需要把商品的优惠卷分享链接,生成一个二维码然后和商品主图合成一张,并且在新合成的主图增加商品信息的描述,好了直接看合成后图片的样式 下面我就直接贴代码,首先是Contorller层 /** ...
  • Java实现多张图片合并一张

    千次阅读 2021-10-26 14:34:22
    Java代码实现多张图片合并一张,这个还是挺常用到的。
  • 1、多jpg图合成gif动画/*** 把多jpg图片合成一张*@parampic String[] 多个jpg文件名 包含路径*@paramnewPic String 生成的gif文件名 包含路径*/private synchronized voidjpgToGif(String pic[], String newPic)...
  • 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 程序将多小图合成一张大图 适合css样式将多个小图合成大图
  • java实现把两张图片合并(Graphics2D)

    千次阅读 2021-02-12 21:57:29
    import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/*** 把两张图片合并* @version 2018-2-27 上午11:12...
  • Java解决两张图片合成后变色问题代码效果 如题,用Graphics2D合成海报后,遇到色值变红或者黑色的问题。这里,我最终的解决方式是,设置图像为BufferedImage.TYPE_3BYTE_BGR类型。 代码 如下,我试图将2.jpg图标贴到...
  • 这个代码可以把多图片重叠成一图片。如果是透明图片透明的部分还保持透明。 代码中是三图片叠加,并且改变了其中一张图片的大小
  • 张图片合并

    2018-08-10 15:52:08
    用于合并多张图片,包含读取图片图片合并、灰度处理、添加背景色、保存图片
  • 所实现的效果是首先给你四已经由ps处理过的图片,然后通过重新将这四张图还原
  • java程序把两张图片合成在一起

    热门讨论 2010-04-25 12:35:59
    不用Ps就能不照片合在一起,两张图片在一起你也能办到,既能操作程序练习代码,又能处理图片
  • Java实现图片合成

    2021-05-23 21:56:40
    竖向合成大小不一致的图片,以最宽图片的为宽为合成后的宽度, 高为所有图片的总高度.图片宽度没有达到合成的宽度则填充部分使用白色画布填充. 代码 /** * 多张图片进行竖向合并成一张图片 * @param image...
  • java 合成两张图片图片与二维码

    千次阅读 2018-12-14 12:12:00
    以下为合成图片和二维码,合成2张图片参看第一个方法注释掉的代码 /* * overlapImage * @description:合成二维码和图片为文件 * @author 李阳 * @date 2018/12/13 * @params [backPicPath, code] * @...
  • 主要介绍了js+canvas实现两张图片合并成一张图片的方法,结合实例形式分析了JavaScript结合HTML5 canvas实现图片合并的操作技巧,并附带了Java图片合并的实现方法,需要的朋友可以参考下
  • 很久没来写文章了,自己忙又懒。最近实现了一个需求,有点意思,就想起来记录一下。 业务需求:生成一个二维码,旁边还要加点解释说明什么的,(类似)最终...3.批量下载:选择使用java自带的ZipOutputStream压缩...
  • 本文就以jpg图片为例吧: /** * 功能描述:多个jpg文件合并成一个jpg到本地 * * @author songchengye * @date 2022/4/7 下午2:26 */ public static File jpgsToJpg(String newFileName, String... ...
  • 先讲下我的需求,把一张图片盖到另外一张图片上面,然后在图片上加上字 第一个版本 最开始的时候我用的是thumbnailator工具包,如上图效果 但是问题来了,这张图有很大的问题,个图都是透明度发生了变化。 第二个...
  • 场景:可能会遇到这样的需求,让我们查看一天每个小时的变化情况,并在一张图片中体现出来,那这就需要利用图片的切割和合成技术。 首先,我们需要把每天的每个小时图片,切割成一图片,再把24个小时拼接成一个...
  • 实例如下:package writeimg;import javax.imageio....import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOExcept...
  • java张图片合成

    2020-01-02 16:32:58
    在此处借用广东省教育学院的公众号图标,我的四jpg都是长一样的,因为没什么图片了,所以就合成一张大的就长成这样子,image.drawImage这个方法是合成图片时,新的图片开始的类似x轴和y轴的开始的坐标,拥有抽象思维的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,745
精华内容 3,498
关键字:

java两张图片合成一张

java 订阅