Java to edit multiple pictures and text into one picture

Java to edit multiple pictures and text into one picture

Due to the need to generate a poster with multiple pictures and customized text in the business, today I wrote a public method to deal with the problem of multiple pictures splicing posters and relevant text pasting into the pictures!

1. Prepare materials -- two pictures, one background picture and one picture that needs to be covered to a certain position







2. Prepare image reorganization method

    1). Set picture size

     Public method for setting picture size

[Java] plain text view copy code
?

public static BufferedImage resizeImage(int x,int y,BufferedImage bfi){

    BufferedImage bufferedImage = new BufferedImage(x, y, BufferedImage.TYPE_INT_RGB);
    bufferedImage.getGraphics().drawImage(
            bfi.getScaledInstance(x, y, Image.SCALE_SMOOTH), 0, 0, null);
    return bufferedImage;

}

Set picture size in reorganization method

[Java] plain text view copy code
?

public static String overlapImage(){

    try {
        //Set picture size
        BufferedImage background = resizeImage(618,1000, ImageIO.read(new File("Here is the path of the background picture!")));
        BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File("Here is the path to insert the QR code picture!")));
         
    }catch (Exception e){
        e.printStackTrace();
    }
    return null;

}

2) write a text message in a position of the background picture

    Draw with Graphics2D tool, write the text into the picture

[Java] plain text view copy code
?

//Add the information you need to write in the background picture, for example: welcome to use my Taobao rebate robot, a must-have at home, a special Secretary for saving money and shopping!
String message01 = "welcome to use my Taobao rebate robot";
String message02 = "it's a must at home, a special Secretary for saving money and shopping! ";
Graphics2D g = background.createGraphics();
g.setColor(Color.white);
g.setFont(new Font("Microsoft YaHei", Font.BOLD,20));
//Here, write the corresponding position of information and information
g.drawString(message01,530 ,190);
g.drawString(message02,530 ,220);
g.dispose();
ImageIO.write(background, "jpg", new File("here is the path of an output picture");

3). Insert other picture information in the middle of background picture

    Finally, add a QR code picture to the background

[Java] plain text view copy code
?

g.drawImage(qrCode, 700, 240, qrCode.getWidth(), qrCode.getHeight(), null);

3. Write the main method, call and view the result

  For easy viewing, the final code is all codes

[Java] plain text view copy code
?

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;

/**

  • Created by zj on 2018/10/18.

*/
public class ImageReorganization {

public static void main(String[] args) {
    String backgroundPath = "D:\\test\\angelYan.jpg";
    String qrCodePath = "D:\\test\\qrcode.jpg";
    String message01 ="Scan the QR code below, welcome to add my Taobao rebate robot";
    String message02 = "It's a must at home, a special Secretary for saving money and shopping!";
    String outPutPath="D:\\test\\end.jpg";
    overlapImage(backgroundPath,qrCodePath,message01,message02,outPutPath);
}

public static String overlapImage(String backgroundPath,String qrCodePath,String message01,String message02,String outPutPath){
    try {
        //Set picture size

//Bufferedimage background = resizeimage (6181000, imageio. Read (new file) ("here is the path of the background picture! ())

        BufferedImage background = resizeImage(1000,618, ImageIO.read(new File(backgroundPath)));

//Bufferedimage QRcode = resizeimage (150150, imageio. Read (new file ("here is the path to insert the QR code picture! ())

        BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File(qrCodePath)));
        //Add the information to be written in the background picture, for example: scan the QR code below, welcome to add my Taobao rebate robot, necessary for home, exclusive Secretary for saving money and shopping!
        //String message = "scan the QR code below. Welcome to add my Taobao rebate robot. It's a must at home and a special Secretary for saving money and shopping! ";
        Graphics2D g = background.createGraphics();
        g.setColor(Color.white);
        g.setFont(new Font("Microsoft YaHei",Font.BOLD,20));
        g.drawString(message01,530 ,190);
        g.drawString(message02,530 ,220);
        //Add a QR code picture to the background picture
        g.drawImage(qrCode, 700, 240, qrCode.getWidth(), qrCode.getHeight(), null);
        g.dispose();

//ImageIO.write(background, "jpg", new File("here is the path of an output picture");

        ImageIO.write(background, "jpg", new File(outPutPath));
    }catch (Exception e){
        e.printStackTrace();
    }
    return null;
}

public static BufferedImage resizeImage(int x, int y, BufferedImage bfi){
    BufferedImage bufferedImage = new BufferedImage(x, y, BufferedImage.TYPE_INT_RGB);
    bufferedImage.getGraphics().drawImage(
            bfi.getScaledInstance(x, y, Image.SCALE_SMOOTH), 0, 0, null);
    return bufferedImage;
}

}

4. Final view effect

Generated picture effects






Tags: Java QRCode

Posted on Wed, 06 Nov 2019 23:10:42 -0500 by dkode