Використовуйте Python для EMF коригування зображень
Створюйте програми Python для коригування зображень і фотографій EMF через серверні API
Як налаштувати EMF зображення та фотографії за допомогою Python
Під час зйомки зображень можуть виникнути помилки через неправильні налаштування камери. Неконтрольоване освітлення також може вплинути на результати, і навіть професійні фотографії можуть мати недоліки. Однак у таких сценаріях існує спосіб покращити зображення за допомогою програмних засобів, наданих бібліотекою Python. У вас є можливість точно налаштувати яскравість, контрастність і колірний баланс зображення. Наприклад, якщо фотографія виглядає надто тьмяною, збільшення яскравості висвітлить темніші області, відкриваючи деталі, які раніше були затемнені в тінях. Якщо ваше зображення демонструє небажані кольорові відтінки через штучне освітлення, ви можете виправити це за допомогою функції налаштування колірної гами. Щоб виконати ці зміни у файлах EMF, ви можете скористатися Aspose.Imaging for Python via .NET API, який є багатофункціональним, потужним і простим у використанні API для обробки зображень і перетворення для платформи Python. Ви можете встановити його за допомогою наступної команди вашої системної консолi.
Системна консоль
>> pip install aspose-imaging-python-net
Кроки для налаштування EMF за допомогою Python
Вам потрібен aspose-imaging-python-net , щоб спробувати наступний робочий процес у вашому власному середовищі.
- Завантажувати файли EMF за допомогою методу Image.Load
- Налаштувати зображення;
- Збережіть стиснене зображення на диск у форматі, який підтримує Aspose.Imaging
Системні вимоги
Aspose.Imaging для Python підтримується в усіх основних операційних системах. Просто переконайтеся, що у вас є такі передумови.
- Microsoft Windows / Linux з .NET Core Runtime. — Менеджер пакетів Python і PyPi.
Налаштувати EMF зображення - 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 adjust_gamma_rgb(): | |
# https://apireference.aspose.com/imaging/python-net/aspose.imaging.rasterimage/adjustgamma | |
filter_images(lambda image: image.adjust_gamma(5, 0.1, 0.1), "adjustgammargb") | |
def adjust_gamma(): | |
filter_images(lambda image: image.adjust_gamma(3), "adjustgamma") | |
def adjust_contrast(): | |
filter_images(lambda image: image.adjust_contrast(50), "adjustcontrast") | |
def adjust_brightness(): | |
filter_images(lambda image: image.adjust_brightness(100), "adjustbrightness") | |
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 | |
page_index = 0 | |
for page in multi_page.pages: | |
file_name = f"{filter_name}_page{page_index}_{format_ext}.png" | |
page.save(os.path.join(templates_folder + file_name), PngOptions()) | |
# delete an output file | |
delete_file(os.path.join(templates_folder + file_name)) | |
page_index += 1 | |
else: | |
image.save(output_file, PngOptions()) | |
# delete an output file | |
delete_file(output_file) | |
# delete a rasterized file | |
if is_vector_format: | |
delete_file(input_file) | |
def delete_file(file): | |
if delete_output: | |
os.remove(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 | |
# call one of the functions | |
adjust_brightness() | |
#adjust_contrast() | |
#adjust_gamma() | |
#adjust_gamma_rgb() |
Про API Aspose.Imaging для Python
API Aspose.Imaging — це рішення для обробки зображень для створення, модифікації, малювання або конвертації зображень (фотографій) у програмах. Він пропонує: кросплатформну обробку зображень, включаючи, але не обмежуючись, перетворення між різними форматами зображень (включно з уніфікованою обробкою багатосторінкових або багатокадрових зображень), такі модифікації, як малювання, робота з графічними примітивами, перетворення (зміна розміру, обрізання, перевертання та обертання). , бінаризація, відтінки сірого, коригування), розширені функції обробки зображення (фільтрування, згладжування, маскування, виправлення) і стратегії оптимізації пам’яті. Це окрема бібліотека, яка не залежить від програмного забезпечення для роботи із зображеннями. Можна легко додати високоефективні функції перетворення зображень за допомогою власних API у проекти. Це 100% приватні локальні API, а зображення обробляються на ваших серверах.Налаштуйте EMF через онлайн-додаток
Відкоригуйте документи EMF, відвідавши наш веб-сайт із демонстраційними версіями . Жива демонстрація має такі переваги
EMF Що таке EMF формат
Розширений формат метафайлів (EMF) зберігає графічні зображення незалежно від пристрою. Метафайли EMF складаються із записів змінної довжини в хронологічному порядку, які можуть відтворити збережене зображення після аналізу на будь-якому пристрої виводу. Ці записи змінної довжини можуть бути визначеннями закритих об’єктів, командами для малювання та властивостями графіки, критичними для точного відтворення зображення. Коли пристрій відкриває метафайл EMF за допомогою власного графічного середовища, пропорції, розміри, кольори та інші графічні властивості оригінального зображення залишаються незмінними незалежно від платформи пристрою, що відкривається.
ДетальнішеІнші підтримувані формати Adjust
Використовуючи Python, можна легко налаштувати різні формати, зокрема.