I olika scenarier komprimeras bilderna för att minska filstorleken. För detta låter olika online- eller offlineapplikationer dig använda bildkomprimering. I vissa fall kan du dock behöva implementera bildkomprimeringsfunktionen från dina webb- eller skrivbordsprogram. För sådana fall täcker den här artikeln hur man komprimerar bilder inklusive PNG, JPEG och TIFF programmatiskt med Java.
- Java Image Compression API
- Komprimera PNG-bilder i Java
- Komprimera JPEG-bilder i Java
- Tillämpa komprimering på TIFF-bilder i Java
- Skaffa en gratis API-licens
Bästa Java Image Compression API - Gratis nedladdning
Aspose.Imaging for Java är ett kraftfullt API som låter dig utföra olika bildbehandlingsoperationer inifrån Java-applikationerna. Dessutom låter den dig komprimera PNG-, JPEG- och TIFF-bilder sömlöst. För att använda API:t kan du antingen ladda ner dess JAR eller installera den i dina Maven-baserade applikationer.
<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>
Komprimera PNG-bilder i Java
PNG-formatet stöder en förlustfri komprimering vilket innebär att komprimering av en PNG-bild minskar dess filstorlek men inte kvaliteten. För PNG-bilder låter Aspose.Imaging för Java dig ställa in komprimeringsnivåer från 0 till 9 där 0 och 9 är lägsta respektive högsta komprimeringsnivåer. Följande är stegen för att komprimera en PNG-bild med Java.
- Ladda först PNG-bilden med klassen Image.
- Skapa en instans av klassen PngOptions.
- Ställ in komprimeringsnivån med metoden PngOptions.setCompressionLevel(int).
- Slutligen, spara den komprimerade PNG-bilden med metoden Image.save(String, PngOptions).
Följande kodexempel visar hur man komprimerar en PNG-bild med Java.
// Ladda en bild från fil (eller stream)
Image image = Image.load("aspose_logo.png");
// Slinga över möjliga kompressionsnivåintervall
for (int i = 0; i <= 9; i++) {
// Skapa en instans av PngOptions för varje resulterande PNG
PngOptions options = new PngOptions();
// Ställ in kompressionsnivå
options.setCompressionLevel(i);
// Spara resultatet på disk (eller stream)
image.save("CompressingFiles_out" + i + ".png", options);
}
JPEG-bildkomprimering med Java
För JPEG-bildkomprimering tillhandahåller Aspose.Imaging för Java följande komprimeringstyper.
- Baslinje
- Progressiv
- Förlust mindre
- JpegLs
Följande är stegen för att tillämpa en av de ovan nämnda komprimeringstyperna på JPEG-bilder med Java.
- Ladda först JPEG-bilden med klassen Image.
- Skapa en instans av klassen JpegOptions.
- Ställ in komprimeringsnivån med metoden JpegOptions.setCompressionType(JpegCompressionMode).
- Spara slutligen den komprimerade JPEG-bilden med metoden Image.save(String, JpegOptions).
Följande kodexempel visar hur man komprimerar JPEG-bilder med Java.
// Ladda bilden
Image original = Image.load("Input.jpeg");
try
{
JpegOptions jpegOptions = new JpegOptions()
{{
// Applicera kompression
setCompressionType(JpegCompressionMode.Progressive);
}};
// Spara komprimerad bild
original.save("result.jpg", jpegOptions);
}
finally
{
original.dispose();
}
Komprimera TIFF-bilder med Java
Aspose.Imaging för Java tillhandahåller en mängd olika TIFF-komprimeringstyper som inkluderar LZW, Packbits, CCIT Fax 3 & 4 och etc. Därför kan du välja den komprimeringstyp som bäst passar dina krav. Följande är stegen för att utföra TIFF-komprimering med Java.
- Ladda först TIFF-bilden med klassen Image.
- Skapa en instans av klassen TiffOptions.
- Ställ in komprimeringsnivån med metoden TiffOptions.setCompression(TiffCompressions).
- Ställ in andra alternativ som bitar per prov, fotometrisk, palett, etc.
- Spara slutligen den komprimerade TIFF-bilden med metoden Image.save(String, TiffOptions).
Följande kodexempel visar hur man komprimerar TIFF-bilder med Java.
// Ladda en bild via filsökvägsplats eller ström
try (Image image = Image.load("sample.tiff"))
{
// Skapa en instans av TiffOptions för den resulterande bilden
TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);
// Ställ in BitsPerSample, Kompression, Fotometriskt läge och gråskalepalett
outputSettings.setBitsPerSample(new int[] { 4 });
outputSettings.setCompression(TiffCompressions.Lzw);
outputSettings.setPhotometric(TiffPhotometrics.Palette);
outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
image.save("SampleTiff_out.tiff", outputSettings);
}
Java API för att komprimera bilder - Skaffa en gratis licens
Om du vill prova API utan utvärderingsbegränsningar kan du skaffa en gratis tillfällig licens.
Slutsats
Bildkomprimering krävs ofta för att minska storleken på bilderna. Därför behandlade den här artikeln hur man komprimerar PNG-, JPEG- och TIFF-bilder programmatiskt med Java. Dessutom kan du utforska mer om Javas bildbehandlings-API med hjälp av dokumentation.
Se även
Info: Aspose utvecklade nyligen en ny webbapp online som låter dig omvandla en uppsättning bilder till en video. Du kanske också är intresserad av en annan tjänst som kan användas för att komprimera videor genom att extrahera ljuden från videor.