Gratis Java Image Creation & Processing Library
Et nyttig Java-bildebehandlings-API med åpen kildekode som lar deg lage lese, skrive, endre størrelse, beskjære, legge til vannmerker og konvertere bilder som PNG, JPEG, BMP, TIFF, ICO og mange flere.
I en verden av datasyn spiller biblioteker en viktig rolle i å forenkle prosessen med bilde- og videoanalyse. Et slikt bibliotek som har fått betydelig oppmerksomhet de siste årene er ICAFE, et åpen kildekode-bibliotek utviklet av Dragon66. ICAFE støtter populære bildeformater som JPEG, PNG, BMP, TIFF, GIF og til og med RAW-formater fra digitale kameraer. Det er et kraftig, allsidig Java-bibliotek for bildebehandling som tilbyr rik funksjonalitet og ulike grunnleggende så vel som avanserte funksjoner for å jobbe med bilder, for eksempel å lage nye bilder, bildekonvertering mellom ulike formater, jobbe med bildemetadata, lage animerte GIF, slå sammen eller dele bilder, fjerne eller legge til biter til PNG, komprimere bilder eller konvertere til bilder og konvertere mellom formater og filtrere mellom formater.
ICAFE (Image & Camera Acquisition for Everyone) er et åpen kildekode-Java-bibliotek som forenkler arbeid med bilder, og tilbyr ulike funksjoner for prosessering, koding, dekoding og metadatautvinning i Java-applikasjoner. Opprinnelig designet for bildehåndtering, har ICAFE utviklet seg til å støtte et bredt spekter av formater, inkludert muligheten til å behandle diagrammer. Med sin fleksible API og støtte for flere bildeformater, gir ICAFE programvareutviklere verktøyene de trenger for å lage kraftige applikasjoner, spesielt for arbeid med diagrammer. Dessuten kan programvareutviklere bruke biblioteket til å importere diagrammer fra forskjellige formater, manipulere dem og deretter eksportere dem til ønsket format. Med sin brukervennlighet, robuste sett med funksjoner, støtte for flere formater og fleksibilitet, er ICAFE en utmerket og verdifull ressurs i enhver utvikleres verktøysett.
Kom i gang med ICAFE
Den enkleste og anbefalte måten å installere ICAFE på er via GitHub.
Installer ICAFE via GitHub
go get -u https://github.com/dragon66/icafe.git
Bildekomprimering og -konvertering
Åpen kildekode ICAFE-biblioteket gjør det enkelt å lese og komprimere ulike typer bilder, noe som er avgjørende når du arbeider med store filer eller optimaliserer nettapplikasjoner. Biblioteket tillater både tapsfri og tapsfri komprimering av bilder. Her er et eksempel som viser hvordan programvareutviklere kan bruke koden for å komprimere et inndata JPEG-bilde og lagre det med 75 % kvalitet. ICAFEs JPEGEncoder-klasse forenkler bildekomprimering, som kan justeres for å passe applikasjonens behov.
Hvordan komprimere JPEG-bilder i Node.js-apper?
import com.icafe4j.image.jpeg.JPEGEncoder;
import java.io.File;
import java.io.IOException;
public class ImageCompressionExample {
public static void main(String[] args) throws IOException {
File inputFile = new File("input.jpg");
File outputFile = new File("compressed_output.jpg");
// Compress JPEG with 75% quality
JPEGEncoder.encode(inputFile, outputFile, 0.75f);
System.out.println("Image compressed successfully!");
}
}
Metadatautvinning via Java-applikasjoner
ICAFE-biblioteket støtter utvinning og manipulering av bildemetadata som EXIF, IPTC og XMP. Dette er spesielt nyttig når du arbeider med kamerabilder eller diagrammer som krever tilleggsinformasjon som tidsstempler, stedsdata eller opphavsrettsdetaljer. I følgende kodeeksempel leser ICAFE EXIF-metadataene fra en JPEG-fil, og henter detaljer om kameramodellen og datoen bildet ble tatt. Dette kan utvides til å håndtere forskjellige andre metadata-tagger, noe som gjør det til et utmerket verktøy for å administrere bildesamlinger.
Hvordan laster og leser og trekker ut EXIF-metadata fra en JPEG-fil via Java API?
import com.icafe4j.image.metadata.Metadata;
import com.icafe4j.image.metadata.exif.Exif;
import com.icafe4j.image.jpeg.JPEGMetadataReader;
import java.io.File;
import java.io.IOException;
public class MetadataExample {
public static void main(String[] args) throws IOException {
File imageFile = new File("input.jpg");
// Extract EXIF metadata from a JPEG file
Metadata metadata = JPEGMetadataReader.readMetadata(imageFile);
Exif exif = (Exif) metadata.getExif();
if (exif != null) {
System.out.println("Camera Model: " + exif.getCameraModel());
System.out.println("Date Taken: " + exif.getDateTime());
} else {
System.out.println("No EXIF metadata found!");
}
}
}
Manipuler (endre størrelse, beskjær, filtrer) bilder via Java
Åpen kildekode ICAFE-biblioteket gjør det enkelt for programvareutviklere å lese og manipulere ulike typer bilder i Java-applikasjoner. Biblioteket støtter fullt ut enkel manipulering av bilder, inkludert endring av størrelse, beskjæring, bruk av filtre og mer. I det følgende kodestykket kan programvareutviklere endre størrelsen på et bilde mens de beholder størrelsesforholdet. ICAFEs manipulasjonsmuligheter gjør det mulig for programvareutviklere å enkelt integrere bildebehandlingsfunksjoner i programvaren deres.
Hvordan laste inn og endre størrelse på bilder via Java API?
public class ResizeImageExample {
public static void main(String[] args) throws IOException {
BufferedImage originalImage = ImageIO.read(new File("input.jpg"));
// Resize the image to a width of 300 and maintain aspect ratio
Image resizedImage = originalImage.getScaledInstance(300, -1, Image.SCALE_SMOOTH);
BufferedImage resizedBufferedImage = new BufferedImage(300, resizedImage.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = resizedBufferedImage.createGraphics();
g2d.drawImage(resizedImage, 0, 0, null);
g2d.dispose();
// Save the resized image
ImageIO.write(resizedBufferedImage, "jpg", new File("resized_output.jpg"));
System.out.println("Image resized successfully!");
}
}
Bruk vannmerking på bilder via Java API?
Det er enkelt å legge til vannmerker i bilder med ICAFE-biblioteket. Denne funksjonen er nyttig for å beskytte åndsverk, spesielt i applikasjoner som omhandler diagrammer eller designelementer. Følgende kodeeksempel viser hvordan du overlegger et tekstvannmerke på et bilde, og sikrer at diagrammene eller bildene dine er beskyttet.
Hvordan overlegg et tekstvannmerke på et bilde via Java API?
public class WatermarkExample {
public static void main(String[] args) throws IOException {
BufferedImage image = ImageIO.read(new File("input.jpg"));
// Add a text watermark
TextWatermark watermark = new TextWatermark("Watermark", 50);
BufferedImage watermarkedImage = watermark.apply(image);
// Save the watermarked image
ImageIO.write(watermarkedImage, "jpg", new File("watermarked_output.jpg"));
System.out.println("Watermark applied successfully!");
}
}