Använd Python för att använda filter för DIB-bilder
Skapa Python-appar för att filtrera DIB-bilder och foton via server-API:er
Hur man filtrerar bilder och foton i DIB med Python
Varje välfångat foto har potential för förbättring, en chans att utvecklas till något helt distinkt och framstå som en unik skapelse. Filter fungerar som ett mångsidigt verktyg för bild- och fotoförbättring, så att du selektivt kan förbättra skärpan, introducera oskärpa eller eliminera färgartefakter för ett verkligt distinkt resultat. Experimentera med bildeffekter individuellt eller i kombination för att sömlöst blanda färggradienter, eliminera oönskat brus och förbättra skärpan hos objektkanterna i ditt foto. Vi kommer att använda dessa bildfilter på DIB-filer Aspose.Imaging for Python via .NET API som är ett funktionsrikt, kraftfullt och lättanvänt API för bildmanipulation och konvertering för Python-plattformen. Du kan installera det med följande kommando från ditt systemkommando.
Systemets kommandorad
>> pip install aspose-imaging-python-net
Steg för att filtrera DIB via Python
Du behöver aspose-imaging-python-net för att prova följande arbetsflöde i din egen miljö.
- Ladda DIB-filer med Image.Load-metoden
- Filtrera bilder;
- Spara komprimerad bild på skiva i det format som stöds av Aspose.Imaging
Systemkrav
Aspose.Imaging för Python stöds på alla större operativsystem. Se bara till att du har följande förutsättningar.
- Microsoft Windows / Linux med .NET Core Runtime.
- Python och PyPi pakethanterare.
Filtrera bilder i DIB - Python
from aspose.imaging import RasterImage, Image, IMultipageImage, Rectangle | |
from aspose.imaging.imagefilters.filteroptions import * | |
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 small_rectangular_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), SmallRectangularFilterOptions()), "smallrectangular") | |
def big_rectangular_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), BigRectangularFilterOptions()), "bigrectangular") | |
def sharpen_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), SharpenFilterOptions()), "sharpen") | |
def motion_wiener_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), MotionWienerFilterOptions(20, 2, 0)), "motionwiener") | |
def bilateral_smoothing_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), BilateralSmoothingFilterOptions()), "bilateralsmoothing") | |
def gauss_blur_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), GaussianBlurFilterOptions(5, 4)), "gaussblur") | |
def gauss_wiener_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), GaussWienerFilterOptions(5, 5)), "gausswiener") | |
def median_filter(): | |
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), MedianFilterOptions(20)), "median") | |
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: | |
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: | |
page_index = 0 | |
for page in multi_page.pages: | |
file_name = f"{filter_name}_page{page_index}_{format_ext}.png" | |
do_filter(as_of(page, RasterImage)) | |
page.save(templates_folder + file_name, PngOptions()) | |
delete_file(templates_folder + file_name) | |
page_index += 1 | |
else: | |
do_filter(image) | |
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, "rasterized.{format_ext}.png") | |
with Image.load(input_file) as image: | |
image.save(output_file, PngOptions()) | |
return output_file | |
# run | |
median_filter() | |
Om Aspose.Imaging för Python API
Aspose.Imaging API är en bildbehandlingslösning för att skapa, modifiera, rita eller konvertera bilder (foton) i applikationer. Det erbjuder: plattformsoberoende bildbehandling, inklusive men inte begränsat till konverteringar mellan olika bildformat (inklusive enhetlig bildbehandling med flera sidor eller flera ramar), modifieringar som ritning, arbete med grafiska primitiver, transformationer (ändra storlek, beskära, vänd och rotera , binarisering, gråskala, justera), avancerade bildmanipuleringsfunktioner (filtrering, vibrering, maskering, avskedning) och minnesoptimeringsstrategier. Det är ett fristående bibliotek och är inte beroende av någon programvara för bildoperationer. Man kan enkelt lägga till högpresterande bildkonverteringsfunktioner med inbyggda API:er inom projekt. Dessa är 100 % privata API:er på plats och bilder bearbetas på dina servrar.Filtrera DIB via onlineapp
Filtrera DIB-dokument genom att besöka vår webbplats för Live Demos . Livedemon har följande fördelar
DIB Vad är DIB Filformat
En DIB-fil (Device Independent Bitmap) är en rasterbildsfil som i struktur liknar standardbitmappsfilerna (BMP) men har en annan rubrik. Den kan öppnas med nästan alla applikationer som kan öppna en standard BMP-fil på Windows såväl som macOS. DIB är binära filer och har ett komplext filformat som liknar BMP.
Läs merAndra filterformat som stöds
Med hjälp av Python kan man enkelt filtrera olika format inklusive.