다양한 시나리오에서 이미지는 파일 크기를 줄이기 위해 압축됩니다. 이를 위해 다양한 온라인 또는 오프라인 응용 프로그램에서 이미지 압축을 적용할 수 있습니다. 그러나 경우에 따라 웹 또는 데스크톱 응용 프로그램 내에서 이미지 압축 기능을 구현해야 할 수도 있습니다. 이러한 경우 이 문서에서는 Java를 사용하여 프로그래밍 방식으로 PNG, JPEG 및 TIFF를 포함한 이미지를 압축하는 방법을 다룹니다.
자바 이미지 압축 API
Aspose.Imaging for Java는 Java 애플리케이션 내에서 다양한 이미지 처리 작업을 수행할 수 있는 강력한 API입니다. 또한 PNG, JPEG 및 TIFF 이미지를 원활하게 압축할 수 있습니다. API를 사용하려면 해당 JAR을 다운로드하거나 Maven 기반 애플리케이션 내에 설치할 수 있습니다.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>20.12</version>
<classifier>jdk16</classifier>
</dependency>
Java에서 PNG 이미지 압축
PNG 형식은 무손실 압축을 지원합니다. 즉, PNG 이미지를 압축하면 파일 크기는 줄어들지만 품질은 줄어들지 않습니다. PNG 이미지의 경우 Java용 Aspose.Imaging을 사용하면 압축 수준을 0에서 9까지 설정할 수 있습니다. 여기서 0과 9는 각각 최소 및 최대 압축 수준입니다. 다음은 Java를 사용하여 PNG 이미지를 압축하는 단계입니다.
- 먼저 Image 클래스를 사용하여 PNG 이미지를 로드합니다.
- PngOptions 클래스의 인스턴스를 만듭니다.
- PngOptions.setCompressionLevel(int) 메서드를 사용하여 압축 수준을 설정합니다.
- 마지막으로 Image.save(String, PngOptions) 메서드를 사용하여 압축된 PNG 이미지를 저장합니다.
다음 코드 샘플은 Java를 사용하여 PNG 이미지를 압축하는 방법을 보여줍니다.
// 파일(또는 스트림)에서 이미지 로드
Image image = Image.load("aspose_logo.png");
// 가능한 압축 수준 범위에 대한 루프
for (int i = 0; i <= 9; i++) {
// 각 결과 PNG에 대해 PngOptions의 인스턴스를 만듭니다.
PngOptions options = new PngOptions();
// 압축 수준 설정
options.setCompressionLevel(i);
// 디스크(또는 스트림)에 결과 저장
image.save("CompressingFiles_out" + i + ".png", options);
}
Java를 사용하여 JPEG 이미지 압축
JPEG 이미지 압축의 경우 Aspose.Imaging for Java는 다음과 같은 압축 유형을 제공합니다.
- 기준선
- 프로그레시브
- 무손실
- JPEGL
Java를 사용하여 JPEG 이미지에 위에서 언급한 압축 유형 중 하나를 적용하는 단계는 다음과 같습니다.
- 먼저 Image 클래스를 사용하여 JPEG 이미지를 로드합니다.
- JpegOptions 클래스의 인스턴스를 만듭니다.
- JpegOptions.setCompressionType(JpegCompressionMode) 메서드를 사용하여 압축 수준을 설정합니다.
- 마지막으로 Image.save(String, JpegOptions) 메서드를 사용하여 압축된 JPEG 이미지를 저장합니다.
다음 코드 샘플은 Java를 사용하여 JPEG 이미지를 압축하는 방법을 보여줍니다.
// 이미지 로드
Image original = Image.load("Input.jpeg");
try
{
JpegOptions jpegOptions = new JpegOptions()
{{
// 압축 적용
setCompressionType(JpegCompressionMode.Progressive);
}};
// 압축된 이미지 저장
original.save("result.jpg", jpegOptions);
}
finally
{
original.dispose();
}
Java를 사용하여 TIFF 이미지 압축
Aspose.Imaging for Java는 LZW, Packbits, CCIT Fax 3 & 4 등을 포함하는 다양한 TIFF 압축 유형을 제공합니다. 따라서 요구 사항에 가장 적합한 압축 유형을 선택할 수 있습니다. 다음은 Java를 사용하여 TIFF 압축을 수행하는 단계입니다.
- 먼저 Image 클래스를 사용하여 TIFF 이미지를 로드합니다.
- TiffOptions 클래스의 인스턴스를 만듭니다.
- TiffOptions.setCompression(TiffCompressions) 메서드를 사용하여 압축 수준을 설정합니다.
- 샘플당 비트 수, 측광, 팔레트 등과 같은 기타 옵션을 설정합니다.
- 마지막으로 Image.save(String, TiffOptions) 메서드를 사용하여 압축된 TIFF 이미지를 저장합니다.
다음 코드 샘플은 Java를 사용하여 TIFF 이미지를 압축하는 방법을 보여줍니다.
// 파일 경로 위치 또는 스트림을 통해 이미지 로드
try (Image image = Image.load("sample.tiff"))
{
// 결과 이미지에 대한 TiffOptions 인스턴스 생성
TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);
// BitsPerSample, Compression, Photometric 모드 및 회색조 팔레트 설정
outputSettings.setBitsPerSample(new int[] { 4 });
outputSettings.setCompression(TiffCompressions.Lzw);
outputSettings.setPhotometric(TiffPhotometrics.Palette);
outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
image.save("SampleTiff_out.tiff", outputSettings);
}
무료 API 라이선스 받기
평가 제한 없이 API를 사용해보고 싶다면 임시 라이선스를 무료로 받으세요.
결론
이미지 크기를 줄이기 위해 이미지 압축이 필요한 경우가 많습니다. 따라서 이 기사에서는 Java를 사용하여 프로그래밍 방식으로 PNG, JPEG 및 TIFF 이미지를 압축하는 방법에 대해 설명했습니다. 또한 문서를 사용하여 Java 이미지 처리 API에 대해 자세히 알아볼 수 있습니다.
또한보십시오
정보: Aspose는 최근 일련의 이미지를 비디오로 변환할 수 있는 새로운 온라인 웹 앱을 개발했습니다. 비디오에서 소리를 추출하여 비디오를 압축하는 데 사용할 수 있는 다른 서비스에 관심이 있을 수도 있습니다.