使用 Thumbnails 合並圖片


將多張圖片合並成一張圖片並附加文字說明。

導入jar包

        <!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
        <dependency>
            <groupId>net.coobird</groupId>
            <artifactId>thumbnailator</artifactId>
            <version>0.4.8</version>
        </dependency>

 

代碼:

 public static void main(String[] args) {
        try {
            int width = 750;
            int height = 1334;

            BufferedImage backgroundImage = Thumbnails.of("C:\\Users\\Jzdsh\\Desktop\\項目\\ss\\bj.jpg").size(1342, 934).asBufferedImage( );
            BufferedImage materialImage = Thumbnails.of("C:\\Users\\Jzdsh\\Desktop\\項目\\ss\\cz.jpg").size(740, 934).asBufferedImage( );
            BufferedImage doorImage = Thumbnails.of("C:\\Users\\Jzdsh\\Desktop\\項目\\ss\\mbs.png").size(375, 375).asBufferedImage( );
            BufferedImage qrImage = Thumbnails.of("C:\\Users\\Jzdsh\\Desktop\\項目\\ss\\qr.png").size(280, 280).asBufferedImage( );


            BufferedImage textImage = Thumbnails.of(handleTextWaterMark( )).size(400,400).asBufferedImage();
            Thumbnails.of("C:\\Users\\Jzdsh\\Desktop\\項目\\ss\\1.jpg").size(width, height)
                    .watermark(new Coordinate(0, 0),backgroundImage,1f)
                    .watermark(new Coordinate((int)(width*0.6), 0),materialImage,1f)
                    .watermark(new Coordinate((int)(width*0.4),(int)(height*0.29)),doorImage,1f)
                    .watermark(new Coordinate((int)(width*0.6),(int)(height*0.74)),qrImage,1f)
                    .watermark(new Coordinate((int)(width*0.08),(int)(height*0.74)), textImage, 1f)
                    .toFile("d:/aaaa/ss.jpg");


        } catch (Exception e) {
            e.printStackTrace( );
        }
    }


    /**
     * @throws
     * @description 操縱文字型水印
     */
    private static BufferedImage handleTextWaterMark( ) {
// 設置文字樣式
        Font font = new Font("微軟雅黑", Font.BOLD, 24);
        //創建緩存圖
        BufferedImage image = new BufferedImage(400, 400, BufferedImage.TYPE_INT_RGB);
        //生成圖片
        Graphics2D g = image.createGraphics( );
        //設置圖片透明度為透明
        image = g.getDeviceConfiguration( ).createCompatibleImage(400, 400, Transparency.TRANSLUCENT);

        //設置文本 距離
        int y = 0;
        int distTop = 45;

        g = image.createGraphics( );
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.setColor(Color.black);
        g.setFont(font);

        g.drawString("Avignon", 5, y += distTop);

        g.setColor(new Color(102,102,102));
        g.setFont(new Font("微軟雅黑", Font.CENTER_BASELINE, 20));
        g.drawString("1400/42K/24KS", 5, y += distTop);
        g.drawString("材質:不銹鋼", 5, y += distTop);
        g.drawString("顏色:古銅色", 5, y += distTop);
        g.drawString("專利:AMTWAVAVG", 5, y += distTop);

        g.dispose( );
        return image;
    }

效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM