Java에서 이미지 자르기
이미지 자르기는 이미지에서 눈에 잘 띄는 부분을 제거하는 데 자주 사용됩니다. 이미지를 잘라서 프레임의 특정 개체에 주의를 끌 수 있으며 이 기사에서는 프로그래밍 방식으로 Java에서 사진을 자르는 방법을 설명합니다.
유료 도구는 용도가 많고 시간을 절약할 수 있지만 며칠 만에 만들 수 있을 때 시도하는 것은 항상 가치가 있습니다. 이 게시물은 주로 타사의 값비싼 도구를 피하여 비용을 절약할 수 있는 초보자를 위한 것입니다. BufferedImage
클래스의 subimage
기능을 사용하여 Java에서 이미지를 자릅니다.
BufferedImage
클래스를 사용하여 Java에서 이미지 자르기
이러한 예제를 만들 때 BufferedImage
클래스가 고려되었습니다.
BufferedImage
클래스의 getSubimage()
메서드 구문:
public BufferedImage getSubimage(int X, int Y, int width, int height)
이 코드는 직사각형 영역이 과거 입력에 의해 결정되는 하위 이미지를 반환합니다. 다음은 네 가지 매개변수에 대한 설명입니다.
매개변수 | 설명 |
---|---|
X |
선택한 직사각형 영역의 왼쪽 상단 모서리의 x 좌표를 제공합니다. |
Y |
왼쪽 위 모서리의 지정된 사각형 영역의 y 좌표를 제공합니다. |
Height |
직사각형 영역의 높이가 지정됩니다. |
Width |
직사각형 영역의 너비를 정의합니다. |
다음은 자르기 할 이미지입니다.
코드 예:
import java.awt.Image;
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) {
File imageFile = new File("/D:/test/image.jpg");
BufferedImage bufferedImage = null;
try {
bufferedImage = ImageIO.read(imageFile);
BufferedImage image = bufferedImage.getSubimage(0, 0, 50, 50);
File pathFile = new File("/D:/test/image-crop.jpg");
ImageIO.write(image, "jpg", pathFile);
} catch (IOException e) {
System.out.println(e);
}
}
}
출력:
10행과 16행에 내 것을 제공했지만 파일 위치를 제공해야 합니다. 또한 사용자가 런타임에 X
, Y
, 너비
및 높이
값을 제공하여 추가 코드 유연성을 제공할 수 있습니다.
여기서 우리는 또 다른 예를 찾고 있습니다. 이미지를 자르려면 Java에서 일부 클래스가 필요합니다. 다음은 Java에서 이미지를 자르기 전에 가져와야 하는 필수 클래스입니다.
이미지 파일을 읽고 쓰려면 File
클래스를 가져와야 합니다. 이 클래스는 일반적으로 파일 및 디렉토리의 경로 이름을 나타냅니다.
Import java.io.File
IOException
클래스는 오류를 처리하는 데 사용됩니다.
Import java.io.IOException
BufferedImage
클래스를 사용하여 이미지를 보유하는 BufferedImage
개체를 빌드합니다.
import java.awt.image.BufferedImage
이미지에서 읽기-쓰기
작업을 수행하기 위해 ImageIO
클래스를 가져올 것입니다. 이 수업에서는 정적 이미지 읽기 및 쓰기 기술을 사용할 수 있습니다.
import javax.imageio.ImageIO
여러 BufferedImage
클래스의 내장 메서드를 사용합니다.
// importing the necessary packages
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args) {
// Using a try block, look for exceptions
try {
// Reading the original image from the local path by
// creating an object of BufferedImage class
BufferedImage originalImg = ImageIO.read(new File("D:/test/Image.jpeg"));
// Fetching and printing alongside the
// dimensions of original image using getWidth()
// and getHeight() methods
System.out.println(
"Original Image Dimension: " + originalImg.getWidth() + "x" + originalImg.getHeight());
// Creating a subimage of given dimensions
BufferedImage SubImg = originalImg.getSubimage(50, 50, 50, 50);
// Printing Dimensions of the new image created
System.out.println(
"Cropped Image Dimension: " + SubImg.getWidth() + "x" + SubImg.getHeight());
// Creating a new file for the cropped image by
// creating an object of the File class
File outputfile = new File("D:/test/ImageCropped.jpeg");
// Writing image in the new file created
ImageIO.write(SubImg, "png", outputfile);
// Display message on console representing
// proper execution of program
System.out.println("Cropped Image created successfully");
}
// Catch block to handle the exceptions
catch (IOException e) {
// Print the exception along with the line number
// using printStackTrace() method
e.printStackTrace();
}
}
}
또한 프로그램 실행 후 콘솔은 지정된 경로에서 실행된 메시지와 새로 생성된 잘린 이미지를 표시합니다.
결론
Java에서 이미지를 자르는 방법을 명확하게 이해했습니다. 직사각형 영역이 몇 가지 다른 방법의 과거 입력에 의해 결정되는 그림을 자르는 방법과 BufferedImage
클래스 및 기타 내장 방법을 사용하여 Java에서 이미지를 자르는 방법을 보여 주었습니다.
또한 설명서를 사용하여 Java 이미지 자르기에 대해 자세히 알아볼 수 있습니다. 이 페이지를 읽었으므로 이미지 자르기가 무엇인지 알고 있을 것입니다.
단순히 이미지의 외부 부분을 제거하여 프레임을 개선하고 종횡비를 변경하는 등의 작업을 수행할 수 있습니다. 이제 주어진 Java 코드를 사용하여 매우 빠르게 수행할 수 있습니다.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn