Java tutorial
import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class Main { public static void main(String[] args) throws IOException { BufferedImage image = ImageIO.read(new File("E:/Java_Dev/plasma.gif")); // crop image BufferedImage firstHalf = image.getSubimage(0, 0, (image.getWidth() / 2), image.getHeight()); BufferedImage secondHalf = image.getSubimage(image.getWidth() / 2, 0, image.getWidth() / 2, image.getHeight()); File croppedFile1 = new File("E:/Java_Dev/half1.png"); File croppedFile2 = new File("E:/Java_Dev/half2.png"); ImageIO.write(firstHalf, "png", croppedFile1); ImageIO.write(secondHalf, "png", croppedFile2); // join image BufferedImage joined = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); BufferedImage image1 = ImageIO.read(new File("E:/Java_Dev/half1.png")); BufferedImage image2 = ImageIO.read(new File("E:/Java_Dev/half2.png")); Graphics2D graph = joined.createGraphics(); graph.drawImage(image1, 0, 0, null); graph.drawImage(image2, image1.getWidth(), 0, null); File joinedFile = new File("E:/Java_Dev/joined.png"); ImageIO.write(joined, "png", joinedFile); } }