Utilice Python para la binarización de imágenes APNG
Cree aplicaciones Python para binarizar imágenes y fotos APNG a través de las API del servidor
Cómo binarizar imágenes y fotografías de APNG con Python
La introducción de la fotografía en color marcó un cambio fundamental en la esfera fotográfica. Sin embargo, el encanto de la clásica imagen en blanco y negro aún persiste. A pesar de la prevalencia de las cámaras en color, muchas personas todavía optan por convertir sus fotografías a blanco y negro. Esta transformación normalmente se logra mediante un proceso de binarización, reemplazando cada píxel con un valor binario: “0” para blanco y “1” para negro. Las imágenes en blanco y negro se utilizan a menudo para algo más que fines artísticos y encuentran aplicaciones prácticas en escenarios como la impresión de ilustraciones en publicaciones como libros y periódicos. Dentro de la biblioteca de gráficos Python, tiene la posibilidad de establecer un umbral de brillo de píxeles. Los píxeles por debajo de este umbral adoptan un color negro, mientras que los que están por encima adoptan un color blanco. También está disponible una técnica de binarización adaptativa, que considera los valores de píxeles circundantes para crear transiciones perfectas entre los límites de color en la imagen en blanco y negro resultante. Para binarizar archivos APNG, utilizaremos Aspose.Imaging for Python via .NET API que es una API de conversión y manipulación de imágenes rica en funciones, potente y fácil de usar para la plataforma Python. Puede instalarlo usando el siguiente comando desde el comando de su sistema.
La línea de comando del sistema
>> pip install aspose-imaging-python-net
Pasos para binarizar APNG a través de Python
Necesita aspose-imaging-python-net para probar el siguiente flujo de trabajo en su propio entorno.
- Cargue archivos APNG con el método Image.Load
- Binarizar imágenes;
- Guarde la imagen comprimida en el disco en el formato compatible con Aspose.Imaging
Requisitos del sistema
Aspose.Imaging para Python es compatible con todos los principales sistemas operativos. Solo asegúrese de tener los siguientes requisitos previos.
- Microsoft Windows/Linux con .NET Core Runtime.
- Gestor de paquetes Python y PyPi.
Binarizar APNG imágenes - 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() |
Acerca de Aspose.Imaging para Python API
Aspose.Imaging API es una solución de procesamiento de imágenes para crear, modificar, dibujar o convertir imágenes (fotos) dentro de las aplicaciones. Ofrece: procesamiento de imágenes multiplataforma, que incluye, entre otros, conversiones entre varios formatos de imagen (incluido el procesamiento uniforme de imágenes de varias páginas o varios cuadros), modificaciones como dibujar, trabajar con primitivas gráficas, transformaciones (redimensionar, recortar, voltear y rotar , binarización, escala de grises, ajuste), funciones avanzadas de manipulación de imágenes (filtrado, difuminado, enmascaramiento, corrección del sesgo) y estrategias de optimización de la memoria. Es una biblioteca independiente y no depende de ningún software para las operaciones de imagen. Uno puede agregar fácilmente funciones de conversión de imágenes de alto rendimiento con API nativas dentro de los proyectos. Estas son API locales 100 % privadas y las imágenes se procesan en sus servidores.Binarizar APNG a través de la aplicación en línea
Binarice documentos APNG visitando nuestro [sitio web de demostraciones en vivo] ( https://products.aspose.app/imaging/image-Binarize) . La demostración en vivo tiene los siguientes beneficios
APNG Qué es APNG Formato de archivo
Un archivo con la extensión .apng (Animated Portable Network Graphics) es un formato gráfico de trama y es una extensión no oficial de Portable Network Graphic (PNG). Se compone de múltiples fotogramas (cada uno de imagen PNG) que representa una secuencia de animación. Esto proporciona una visualización similar a la de un archivo GIF. Los archivos APNG admiten imágenes de 24 bits y transparencia de 8 bits. APNG es compatible con versiones anteriores de archivos GIF no animados. Los archivos APNG usan la misma extensión .png y pueden abrirse con aplicaciones como Mozilla Firefox, Chrome con compatibilidad con APNG, aplicaciones de iMessage para iOS 10.
Leer másOtros formatos binarios admitidos
Usando Python, uno puede binarizar fácilmente diferentes formatos, incluidos.