PPTX DOCX XLSX PDF ODP
Aspose.Imaging  dla Java
APNG

Filtruj APNG przez Java

Twórz własne aplikacje Java, aby filtrować pliki APNG przy użyciu interfejsów API po stronie serwera.

Jak filtrować pliki APNG za pomocą Java

Nawet najdoskonalszy obraz można jeszcze bardziej ulepszyć lub przekształcić w zupełnie inne i niepowtarzalne dzieło sztuki. Zastosuj filtry, aby uzyskać szeroką gamę efektów graficznych. Można na przykład wyostrzyć obraz lub odwrotnie, dodać rozmycie, wygładzić go lub wyeliminować szum kolorów. Filtry są również nieocenione, gdy chcesz nadać swojemu obrazowi wyjątkowości. Aby to osiągnąć, zastosuj pożądany efekt lub połącz różne efekty. Takie podejście pozwala udoskonalić przejścia kolorów, wyeliminować szumy, a jednocześnie poprawić ostrość krawędzi obiektów na zdjęciu. Aby filtrować pliki w formacie APNG, użyjemy Aspose.Imaging dla Javy API, który jest bogatym w funkcje, wydajnym i łatwym w użyciu interfejsem API do obróbki i konwersji obrazów dla platformy Java. Możesz pobrać jego najnowszą wersję bezpośrednio z Maven i zainstaluj go w swoim projekcie opartym na Maven, dodając następujące konfiguracje do pom.xml.

Repozytorium

<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>

Zależność

<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>version of aspose-imaging API</version>
<classifier>jdk16</classifier>
</dependency>

Kroki do filtrowania APNG przez Java

Potrzebujesz aspose-imaging-version-jdk16.jar aby wypróbować następujący przepływ pracy we własnym środowisku.

  • Załaduj pliki APNG za pomocą metody Image.Load
  • Filtruj obrazy;
  • Zapisz skompresowany obraz na dysku w formacie obsługiwanym przez Aspose.Imaging

wymagania systemowe

Aspose.Imaging dla Java jest obsługiwane we wszystkich głównych systemach operacyjnych. Tylko upewnij się, że masz następujące wymagania wstępne.

  • JDK 1.6 lub nowszy jest zainstalowany.
 

Filtruj obrazy w formacie APNG – Java

import com.aspose.imaging.IMultipageImage;
import com.aspose.imaging.Image;
import com.aspose.imaging.RasterImage;
import com.aspose.imaging.imageoptions.PngOptions;
import java.io.File;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;
medianfilter();
public static void smallRectangularfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/SmallRectangularFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new SmallRectangularFilterOptions());
}, "smallrectangular");
}
public static void bigRectangularfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/BigRectangularFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new BigRectangularFilterOptions());
}, "bigrectangular");
}
public static void sharpenfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/SharpenFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new SharpenFilterOptions());
}, "sharpen");
}
public static void motionWienerfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/MotionWienerFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new MotionWienerFilterOptions(20, 2, 0));
}, "motionwiener");
}
public static void bilateralSmoothingfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/BilateralSmoothingFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new BilateralSmoothingFilterOptions());
}, "bilateralsmoothing");
}
public static void gaussBlurfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/GaussianBlurFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new GaussianBlurFilterOptions(5, 4));
}, "gaussblur");
}
public static void gaussWienerfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/GaussWienerFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new GaussWienerFilterOptions(5, 5));
}, "gausswiener");
}
public static void medianfilter()
{
filterImages(image ->
{
// https://apireference.aspose.com/imaging/java/com.aspose.imaging.imagefilters.filteroptions/MedianFilterOptions
Rectangle filterRect = new Rectangle(image.getWidth() / 6, image.getHeight() / 6, image.getWidth() * 2 / 3, image.getHeight() * 2 / 3);
image.filter(filterRect, new MedianFilterOptions(20));
}, "median");
}
static String templatesFolder = "D:\\";
public static void filterImages(Consumer<RasterImage> doFilter, String filterName)
{
List<String> rasterFormats = Arrays.asList("jpg", "png", "bmp", "apng", "dicom",
"jp2", "j2k", "tga", "webp", "tif", "gif", "ico");
List<String> vectorFormats = Arrays.asList("svg", "otg", "odg", "eps", "wmf", "emf", "wmz", "emz", "cmx", "cdr");
List<String> allFormats = new LinkedList<>(rasterFormats);
allFormats.addAll(vectorFormats);
allFormats.forEach(
formatExt ->
{
String inputFile = templatesFolder + "template." + formatExt;
boolean isVectorFormat = vectorFormats.contains(formatExt);
//Need to rasterize vector formats before background remove
if (isVectorFormat)
{
inputFile = rasterizeVectorImage(formatExt, inputFile);
}
String outputFile = templatesFolder + String.format("%s_%s.png", filterName, formatExt);
System.out.println("Processing " + formatExt);
try (RasterImage image = (RasterImage) Image.load(inputFile))
{
doFilter.accept(image);
//If image is multipage save each page to png to demonstrate results
if (image instanceof IMultipageImage && ((IMultipageImage) image).getPageCount() > 1)
{
IMultipageImage multiPage = (IMultipageImage) image;
final int pageCount = multiPage.getPageCount();
final Image[] pages = multiPage.getPages();
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++)
{
String fileName = String.format("%s_page%d_%s.png", filterName, pageIndex, formatExt);
pages[pageIndex].save(fileName, new PngOptions());
}
}
else
{
image.save(outputFile, new PngOptions());
}
}
//Remove rasterized vector image
if (isVectorFormat)
{
new File(inputFile).delete();
}
}
);
}
private static String rasterizeVectorImage(String formatExt, String inputFile)
{
String outputFile = templatesFolder + "rasterized."+ formatExt + ".png";
try (Image image = Image.load(inputFile))
{
image.save(outputFile, new PngOptions());
}
return outputFile;
}
 
  • Informacje o Aspose.Imaging dla Java API

    Aspose.Imaging API to rozwiązanie do przetwarzania obrazów do tworzenia, modyfikowania, rysowania lub konwertowania obrazów (zdjęć) w aplikacjach. Oferuje: wieloplatformowe przetwarzanie obrazu, w tym między innymi konwersje między różnymi formatami obrazu (w tym jednolite przetwarzanie obrazu wielostronicowego lub wieloklatkowego), modyfikacje takie jak rysowanie, praca z prymitywami graficznymi, przekształcenia (zmiana rozmiaru, przycinanie, odwracanie i obracanie , binaryzacja, skala szarości, dostosowanie), zaawansowane funkcje manipulacji obrazem (filtrowanie, dithering, maskowanie, prostowanie) oraz strategie optymalizacji pamięci. Jest to samodzielna biblioteka i nie zależy od żadnego oprogramowania do obsługi obrazów. W projektach można łatwo dodać wysokowydajne funkcje konwersji obrazów za pomocą natywnych interfejsów API. Są to w 100% prywatne lokalne interfejsy API, a obrazy są przetwarzane na Twoich serwerach.

    Filtruj APNG przez aplikację online

    Filtruj dokumenty w formacie APNG, odwiedzając naszą witrynę demonstracyjną na żywo . Demo na żywo ma następujące zalety

      Nie musisz niczego pobierać ani konfigurować
      Nie musisz pisać żadnego kodu
      Po prostu prześlij swoje pliki APNG i naciśnij przycisk „Filtruj teraz”
      Natychmiast uzyskaj link do pobrania pliku wynikowego

    APNG Co jest APNG Format pliku

    Plik z rozszerzeniem .apng (Animated Portable Network Graphics) jest rastrowym formatem graficznym i jest nieoficjalnym rozszerzeniem Portable Network Graphics (PNG ). Składa się z wielu ramek (każda z obrazu PNG), które reprezentują sekwencję animacji. Daje to podobną wizualizację jak plik GIF. Pliki APNG obsługują obrazy 24-bitowe i przezroczystość 8-bitową. APNG jest wstecznie kompatybilny z nieanimowanymi plikami GIF. Pliki APNG używają tego samego rozszerzenia .png i mogą być otwierane przez aplikacje takie jak Mozilla Firefox, Chrome z obsługą APNG, aplikacje iMessage na iOS 10.

    Czytaj więcej

    Inne obsługiwane formaty filtrów

    Używając Java, można łatwo filtrować różne formaty, w tym.

    BMP (Obraz bitmapowy)
    ICO (Ikona Windows)
    JPG (Wspólna Grupa Ekspertów Fotograficznych)
    JPEG (Wspólna Grupa Ekspertów Fotograficznych)
    DIB (Mapa bitowa niezależna od urządzenia)
    DICOM (Obrazowanie cyfrowe i komunikacja)
    DJVU (Format graficzny)
    DNG (Obraz z aparatu cyfrowego)
    EMF (Ulepszony format metapliku)
    EMZ (Rozszerzony metaplik skompresowany w systemie Windows)
    GIF (Graficzny format wymiany)
    JP2 (JPEG 2000)
    J2K (Skompresowany obraz falkowy)
    PNG (Przenośna Grafika Sieciowa)
    TIFF (Oznaczony format obrazu)
    TIF (Oznaczony format obrazu)
    WEBP (Obraz rastrowy w sieci Web)
    WMF (Metaplik Microsoft Windows)
    WMZ (Skompresowana skórka Windows Media Player)
    TGA (Targa grafika)
    SVG (Skalowalna Grafika wektorowa)
    EPS (Enkapsulowany język PostScript)
    CDR (Obraz rysunku wektorowego)
    CMX (Obraz wymiany firmy Corel)
    OTG (Standard OpenDocument)
    ODG (Apache OpenOffice Draw format)