Java-bildbearbetning och manipulering med öppen källkod
Ledande Java-bildredigerings- och manipuleringsbibliotek med öppen källkod gör det möjligt att läsa, skriva, manipulera och konvertera ofta använda format som PNG, JPEG, BMP, TIFF, ICO och mer.
Vad är Apache Commons Imaging?
Apache Commons Imaging, tidigare känt som Sanselan, är ett kraftfullt Java-bibliotek med öppen källkod utvecklat under Apache Commons-projektet. Det är en del av det bredare Apache Commons-projektet och erbjuder mjukvaruutvecklare ett effektivt sätt att läsa och skriva en mängd olika bildformat utan att förlita sig på externa bibliotek. Mjukvaruutvecklare kan hantera en mängd olika bildformat, förenkla uppgifter som att läsa och skriva bilder, konvertering till andra format, hantering av bildmetadata, anpassad bildåtergivning, bildfärgsmodeller, bildmanipulation och så vidare. Bibliotekets flexibilitet gör det idealiskt för applikationer som kräver bildbehandling utan att förlita sig på externa beroenden. Biblioteket tillhandahåller en mängd olika bildfilter, inklusive oskärpa, skärpa och kantdetektering.
Apache Commons Imaging är ett robust och mångsidigt bibliotek som förenklar processen att arbeta med bildfiler i Java-applikationer. Det är ett Java-baserat bibliotek som stöder flera bildformat som PNG, JPEG, BMP, GIF, TIFF, ICO och så vidare. Dessutom erbjuder den verktyg för bildanalys, inklusive histogramberäkning, färgrymdskonvertering och bildsegmentering. Det är ett idealiskt val för både utvecklare, forskare och entusiaster. Biblioteket erbjuder ett effektivt och lättanvänt API för bildmanipulering, vilket kan vara särskilt användbart i miljöer med begränsade resurser. Oavsett om du arbetar med ett projekt som kräver bildbehandling, eller helt enkelt vill experimentera med bildmanipulation, är Apache Commons Imaging definitivt värt att utforska.
Komma igång med Apache Commons Imaging
Det rekommenderade sättet att installera Apache Commons Imaging är att använda Maven Repository. Använd följande kommando för en smidig installation.
Maven repository för Apache Commons Imaging
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://releases.aspose.com/java/repo/</url>
</repository>
</repositories>
//Define Aspose.PDF for Java API Dependency
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-imaging</artifactId>
<version>1.0.0-alpha5</version>
</dependency>
</dependencies>
Installera Apache Commons Imaging via GitHub
go get -u https://github.com/apache/commons-imaging.git
Du kan ladda ner biblioteket direkt från GitHub produktsida
Bildkonvertering i java-appar
Diagram lagrade i ett format (t.ex. PNG) kan behöva konverteras till ett annat format (t.ex. BMP eller JPEG) för kompatibilitets- eller optimeringsändamål. Apache Commons Imaging erbjuder konverteringsfunktioner som gör att utvecklare kan konvertera olika bildfilformat mellan format som stöds utan ansträngning. Följande exempel visar hur lätt programvaruutvecklare kan konvertera en PNG-fil till BMP-formatet. Processen är enkel och kan hantera konverteringar mellan alla format som stöds, vilket gör den idealisk för program som behöver spara bilder i flera format för kompatibilitetssyften.
Hur konverterar man en PNG-fil till BMP-filformat via Java API?
File inputFile = new File("diagram.png");
BufferedImage image = Imaging.getBufferedImage(inputFile);
File outputFile = new File("converted_image.bmp");
Imaging.writeImage(image, outputFile, ImageFormats.BMP, null);
Bildhantering via Java Library
Apache Commons Imaging kan användas i kombination med andra Java-bibliotek som BufferedImage för att utföra vanliga bildtransformationer som storleksändring, beskärning och skalning. Metoden Scalr.resize() från ett annat Java-bildbehandlingsbibliotek (imgscalr) används för att ändra storlek, följt av att spara den ändrade bilden med Apache Commons Imaging. Detta möjliggör sömlös integration med andra Java-bibliotek för avancerad bildmanipulation.
Hur ändrar man storlek på en bild i Java-appar?
BufferedImage originalImage = Imaging.getBufferedImage(new File("sample_image.png"));
BufferedImage resizedImage = Scalr.resize(originalImage, 300); // Resize width to 300px
File outputFile = new File("resized_image.png");
Imaging.writeImage(resizedImage, outputFile, ImageFormats.PNG, null);
Extraktion av bildmetadata via Java API
En av nyckelfunktionerna i Apache Commons Imaging är dess förmåga att extrahera metadata från bilder i Java-applikationer. För diagram kan denna metadata innehålla användbar information som skapelsedatum, ändringshistorik eller författardetaljer. Denna förmåga gör det möjligt för utvecklare att bearbeta diagrambilder på ett sätt som sträcker sig längre än bara visning. Följande exempel visar hur mjukvaruutvecklare kan extrahera metadata från bilder i Java-applikationer.
Hur extraherar man metadata från bilder via Java API?
File imageFile = new File("diagram.png");
ImageInfo imageInfo = Imaging.getImageInfo(imageFile);
System.out.println("Format: " + imageInfo.getFormat());
System.out.println("Width: " + imageInfo.getWidth());
System.out.println("Height: " + imageInfo.getHeight());
Anpassad bildåtergivning i Java-appar
Programutvecklare kan använda Apache Commons Imaging för att skapa bilder i farten eller modifiera befintliga i Java-applikationer. Genom att kombinera biblioteket med Javas inbyggda Graphics2D är det möjligt att rita på bilder programmatiskt eller lägga till kommentarer. Följande kodexempel skapar en tom bild, lägger till text till den och sparar den som en PNG-fil. Den visar hur Apache Commons Imaging kan arbeta med Javas ritnings-API:er för att generera bilder från grunden.
Hur genererar man bilder från början via Java?
BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setPaint(Color.WHITE);
graphics.fillRect(0, 0, image.getWidth(), image.getHeight());
graphics.setPaint(Color.BLACK);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Custom Diagram", 100, 150);
graphics.dispose();
File outputFile = new File("custom_image.png");
Imaging.writeImage(image, outputFile, ImageFormats.PNG, null);