Verwenden Sie Python für die Binarisierung von GIF-Bildern
Erstellen Sie Python-Apps, um GIF-Bilder und Fotos über Server-APIs zu binarisieren
So binarisieren Sie GIF-Bilder und Fotos mit Python
Die Einführung der Farbfotografie markierte einen entscheidenden Wandel im fotografischen Bereich. Dennoch bleibt der Reiz des klassischen Schwarz-Weiß-Bildes bestehen. Trotz der Verbreitung von Farbkameras entscheiden sich viele Menschen immer noch dafür, ihre Fotos in Schwarzweiß umzuwandeln. Diese Transformation wird typischerweise durch einen Binärisierungsprozess erreicht, bei dem jedes Pixel durch einen Binärwert ersetzt wird: „0“ für Weiß und „1“ für Schwarz. Schwarzweißbilder werden oft nicht nur für künstlerische Zwecke verwendet, sondern finden auch praktische Anwendung, beispielsweise beim Drucken von Illustrationen in Publikationen wie Büchern und Zeitungen. In der Grafikbibliothek Python haben Sie die Möglichkeit, einen Pixelhelligkeitsschwellenwert festzulegen. Pixel unterhalb dieses Schwellenwerts nehmen eine schwarze Farbe an, während Pixel darüber eine weiße Farbe annehmen. Es ist auch eine adaptive Binarisierungstechnik verfügbar, die die umgebenden Pixelwerte berücksichtigt, um nahtlose Übergänge zwischen Farbgrenzen im resultierenden Schwarz-Weiß-Bild zu erzeugen. Zum Binarisieren von GIF-Dateien verwenden wir 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 Binarisieren von GIFs über Python
Sie benötigen aspose-imaging-python-net , um den folgenden Workflow in Ihrer eigenen Umgebung auszuprobieren.
- Laden Sie GIF-Dateien mit der Image.Load-Methode
- Bilder binarisieren;
- 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.
GIF-Bilder binarisieren - Python
from aspose.imaging import * | |
from aspose.imaging.fileformats.bmp import * | |
from aspose.imaging.fileformats.dicom import * | |
from aspose.imaging.fileformats.emf import * | |
from aspose.imaging.fileformats.jpeg import * | |
from aspose.imaging.fileformats.jpeg2000 import * | |
from aspose.imaging.fileformats.png import * | |
from aspose.imaging.fileformats.psd import * | |
from aspose.imaging.fileformats.tiff.enums import * | |
from aspose.imaging.imagefilters.filteroptions import * | |
from aspose.imaging.imageoptions import * | |
from aspose.imaging.masking import * | |
from aspose.imaging.masking.options import * | |
from aspose.imaging.masking.result import * | |
from aspose.imaging.sources import * | |
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 binarize_otsu(): | |
filter_images(lambda image: image.binarize_otsu(), "binarizeotsu") | |
def binarize_bradley(): | |
filter_images(lambda image: image.binarize_bradley(0.5), "binarizebradley") | |
def binarize_fixed(): | |
filter_images(lambda image: image.binarize_fixed(70), "binarizefixed") | |
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("tif") | |
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 = [] | |
all_formats.extend(raster_formats) | |
all_formats.extend(vector_formats) | |
for format_ext in all_formats: | |
input_file = os.path.join(templates_folder, f"template.{format_ext}") | |
if not os.path.exists(input_file): | |
continue | |
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 = f"{filter_name}_page{page_index}_{format_ext}.png" | |
page.save(templates_folder + file_name, PngOptions()) | |
os.remove(templates_folder + 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 | |
def delete_file(file): | |
if delete_output: | |
os.remove(file) | |
# Run filters | |
binarize_fixed() | |
# binarize_bradley() | |
# binarize_otsu() |
Ü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.Binarisieren Sie GIFs über die Online-App
Binarisieren Sie GIF-Dokumente, indem Sie unsere [Live-Demo-Website] ( https://products.aspose.app/imaging/image-Binarize ) besuchen. Die Live-Demo hat die folgenden Vorteile
GIF Was ist GIF Datei Format
Ein GIF oder Graphical Interchange Format ist eine Art stark komprimiertes Bild. GIF gehört Unisys und verwendet den LZW-Komprimierungsalgorithmus, der die Bildqualität nicht beeinträchtigt. Für jedes Bild sind in GIF normalerweise bis zu 8 Bit pro Pixel und bis zu 256 Farben im gesamten Bild zulässig. Im Gegensatz zu einem JPEG-Bild, das bis zu 16 Millionen Farben darstellen kann und ziemlich an die Grenzen des menschlichen Auges stößt. Als das Internet aufkam, blieben GIFs die beste Wahl, da sie eine geringe Bandbreite erforderten und für die Grafiken kompatibel waren, die Volltonbereiche verbrauchen. Ein animiertes GIF kombiniert zahlreiche Bilder oder Frames in einer einzigen Datei und zeigt sie in einer Sequenz an, um einen animierten Clip oder ein kurzes Video zu erstellen. Die Farbbeschränkungen betragen bis zu 256 für jedes Bild und sind wahrscheinlich am wenigsten geeignet, um andere Bilder und Fotos mit Farbverlauf zu reproduzieren.
WesenAndere unterstützte Binarisierungsformate
Mit Python kann man einfach verschiedene Formate binarisieren, einschließlich.