Verwenden Sie Python für das Dithering von EPS-Bildern
Erstellen Sie Python-Apps zum Dithern von EPS-Bildern und Fotos über Server-APIs
So dithern Sie EPS-Bilder und Fotos mit Python
Die Verbesserung der Bild- und Fotoparameter für eine Website wirkt sich erheblich auf den Webverkehr aus. Zu diesen Optimierungen gehört die Reduzierung der Farbpalette eines Bildes, wodurch die Dateigröße effektiv minimiert und das Laden der Seite beschleunigt wird. Um jedoch abrupte Kanten oder Störungen im Farbverlauf zu vermeiden, empfiehlt sich der Einsatz der Dithering-Methode. Diese Technik hilft dabei, Farbübergänge zu verfeinern und die Gesamtbildqualität zu verbessern. Es entsteht ein leichtes „Rauschen“, das die Bildwahrnehmung positiv beeinflusst. Für Dithering-Bilder im Format EPS wenden wir an Aspose.Imaging for Python via .NET API, eine funktionsreiche, leistungsstarke und benutzerfreundliche Bildbearbeitungs- und Konvertierungs-API für die Python-Plattform. Sie können es mit dem folgenden Befehl aus Ihrem Systembefehl installieren.
Die Systembefehlszeile
>> pip install aspose-imaging-python-net
Schritte zum Dithern von EPSs über Python
Sie benötigen aspose-imaging-python-net , um den folgenden Workflow in Ihrer eigenen Umgebung auszuprobieren.
- Laden Sie EPS-Dateien mit der Image.Load-Methode
- Dither-Bilder;
- Speichern Sie komprimierte Bilder im von Aspose.Imaging unterstützten Format auf Disc
System Anforderungen
Aspose.Imaging für Python wird auf allen wichtigen Betriebssystemen unterstützt. Stellen Sie einfach sicher, dass Sie die folgenden Voraussetzungen erfüllen.
- Microsoft Windows / Linux mit .NET Core Runtime.
- Python- und PyPi-Paketmanager.
Dither-Bilder von EPS - Python
from aspose.imaging import Image, RasterImage, DitheringMethod, IMultipageImage | |
from aspose.imaging.imageoptions import PngOptions | |
from aspose.pycore import as_of, is_assignable | |
import os | |
if 'TEMPLATE_DIR' in os.environ: | |
templates_folder = os.environ['TEMPLATE_DIR'] | |
else: | |
templates_folder = r"C:\Users\USER\Downloads\templates" | |
delete_output = 'SAVE_OUTPUT' not in os.environ | |
def delete_file(file): | |
if delete_output: | |
os.remove(file) | |
def floyd_steinberg_dithering(): | |
filter_images(lambda image: image.dither(DitheringMethod.FLOYD_STEINBERG_DITHERING, 4), "floydsteinbergdithering") | |
def threshold_dithering(): | |
filter_images(lambda image: image.dither(DitheringMethod.THRESHOLD_DITHERING, 4), "thresholddithering") | |
def filter_images(do_filter, filter_name): | |
obj_init = [] | |
obj_init.append("jpg") | |
obj_init.append("png") | |
obj_init.append("bmp") | |
obj_init.append("apng") | |
obj_init.append("dicom") | |
obj_init.append("jp2") | |
obj_init.append("j2k") | |
obj_init.append("tga") | |
obj_init.append("webp") | |
obj_init.append("tiff") | |
obj_init.append("gif") | |
obj_init.append("ico") | |
raster_formats = obj_init | |
obj_init2 = [] | |
obj_init2.append("svg") | |
obj_init2.append("otg") | |
obj_init2.append("odg") | |
obj_init2.append("eps") | |
obj_init2.append("wmf") | |
obj_init2.append("emf") | |
obj_init2.append("wmz") | |
obj_init2.append("emz") | |
obj_init2.append("cmx") | |
obj_init2.append("cdr") | |
vector_formats = obj_init2 | |
all_formats = raster_formats | |
all_formats.extend(vector_formats) | |
for format_ext in all_formats: | |
input_file = os.path.join(templates_folder, f"template.{format_ext}") | |
is_vector_format = format_ext in vector_formats | |
if is_vector_format: | |
input_file = rasterize_vector_image(format_ext, input_file) | |
output_file = os.path.join(templates_folder, f"{filter_name}_{format_ext}.png") | |
print(format_ext) | |
# explicit type casting from Image to RasterImage | |
with as_of(Image.load(input_file), RasterImage) as image: | |
do_filter(image) | |
multi_page = None | |
# if image implements an IMultipageImage interface | |
if is_assignable(image, IMultipageImage): | |
multi_page = as_of(image, IMultipageImage) | |
if multi_page is not None and multi_page.page_count > 1: | |
# for loop | |
for_first_step = True | |
page_index = 0 | |
for page in multi_page.pages: | |
file_name = os.path.join( | |
templates_folder, | |
f"{filter_name}_page{page_index}_{format_ext}.png") | |
page.save(file_name, PngOptions()) | |
delete_file(file_name) | |
page_index += 1 | |
else: | |
image.save(output_file, PngOptions()) | |
delete_file(output_file) | |
if is_vector_format: | |
delete_file(input_file) | |
def rasterize_vector_image(format_ext, input_file): | |
output_file = os.path.join(templates_folder, f"rasterized.{format_ext}.png") | |
with Image.load(input_file) as image: | |
image.save(output_file, PngOptions()) | |
return output_file | |
# run | |
floyd_steinberg_dithering() | |
threshold_dithering() |
Über Aspose.Imaging für die Python-API
Aspose.Imaging API ist eine Bildverarbeitungslösung zum Erstellen, Ändern, Zeichnen oder Konvertieren von Bildern (Fotos) in Anwendungen. Es bietet: plattformübergreifende Bildverarbeitung, einschließlich, aber nicht beschränkt auf Konvertierungen zwischen verschiedenen Bildformaten (einschließlich einheitlicher Mehrseiten- oder Multiframe-Bildverarbeitung), Modifikationen wie Zeichnen, Arbeiten mit grafischen Grundelementen, Transformationen (Größe ändern, Zuschneiden, Spiegeln und Drehen , Binarisierung, Graustufen, Anpassen), erweiterte Bildbearbeitungsfunktionen (Filtern, Dithering, Maskieren, Entzerren) und Strategien zur Speicheroptimierung. Es ist eine eigenständige Bibliothek und hängt von keiner Software für Bildoperationen ab. Mit nativen APIs können innerhalb von Projekten problemlos hochleistungsfähige Bildkonvertierungsfunktionen hinzugefügt werden. Dies sind 100 % private lokale APIs und Bilder werden auf Ihren Servern verarbeitet.Dither EPSs über die Online-App
Dithern Sie EPS-Dokumente, indem Sie unsere [Live-Demo-Website] ( https://products.aspose.app/imaging/image-Dither ) besuchen. Die Live-Demo hat die folgenden Vorteile
EPS Was ist EPS Datei Format
Dateien mit der Erweiterung EPS beschreiben im Wesentlichen ein Encapsulated PostScript-Sprachprogramm, das das Erscheinungsbild einer einzelnen Seite beschreibt. Der Name "Encapsulated", weil er in eine Seitenbeschreibung einer anderen PostScript-Sprache eingeschlossen oder eingekapselt werden kann. Dieses skriptbasierte Dateiformat kann eine beliebige Kombination aus Text, Grafiken und Bildern enthalten. EPS-Dateien können ein eingekapseltes Bitmap-Vorschaubild enthalten, das von Anwendungen angezeigt werden kann, die solche Dateien öffnen können. EPS-Dateien können mit verschiedenen Anwendungen in Standard-Bildformate wie JPG, PNG, TIFF und PDF konvertiert werden, z. Adobe Illustrator, Photoshop und Paint Shop Pro. Aufgrund einer Sicherheitslücke in EPS-Dateien haben Office 2016, Office 2013, Office 2010 und Office 365 die Möglichkeit zum Einfügen von EPS-Dateien in Office-Dokumente deaktiviert.
WesenAndere unterstützte Dither-Formate
Mit Python kann man problemlos verschiedene Formate dithern, einschließlich.