Gunakan Python untuk Penyesuaian Gambar SVG
Buat Aplikasi Python untuk Menyesuaikan SVG Gambar dan Foto melalui API Server
Cara Menyesuaikan SVG Gambar dan Foto dengan Python
Saat mengambil gambar, kesalahan bisa terjadi karena pengaturan kamera yang salah. Pencahayaan yang tidak terkontrol juga dapat memengaruhi hasil, dan bahkan foto profesional pun mungkin menunjukkan ketidaksempurnaan. Namun, dalam skenario seperti itu, terdapat metode untuk menyempurnakan gambar dengan memanfaatkan perangkat lunak yang disediakan oleh pustaka Python. Anda memiliki kemampuan untuk menyempurnakan kecerahan, kontras, dan keseimbangan warna gambar. Misalnya, jika foto tampak terlalu redup, meningkatkan kecerahan akan menerangi area yang lebih gelap, memperlihatkan detail yang sebelumnya tertutup bayangan. Jika gambar Anda menunjukkan corak warna yang tidak diinginkan karena pencahayaan buatan, Anda dapat memperbaikinya menggunakan fitur penyesuaian gamma warna. Untuk melakukan perubahan ini pada file SVG, Anda dapat menggunakan Aspose.Imaging for Python via .NET API yang merupakan API konversi dan manipulasi gambar yang kaya fitur, kuat, dan mudah digunakan untuk platform Python. Anda dapat menginstalnya menggunakan perintah berikut dari perintah sistem Anda.
Baris perintah sistem
>> pip install aspose-imaging-python-net
Langkah-langkah untuk Menyesuaikan SVG melalui Python
Anda memerlukan aspose-imaging-python-net untuk mencoba alur kerja berikut di lingkungan Anda sendiri.
- Muat file SVG dengan metode Image.Load
- Sesuaikan gambar;
- Simpan gambar terkompresi ke disk dalam format yang didukung oleh Aspose.Imaging
Persyaratan sistem
Aspose.Imaging untuk Python didukung di semua sistem operasi utama. Pastikan saja Anda memiliki prasyarat berikut.
- Microsoft Windows / Linux dengan .NET Core Runtime.
- Manajer paket Python dan PyPi.
Sesuaikan gambar SVG - 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() |
Tentang Aspose.Imaging untuk Python API
Aspose.Imaging API adalah solusi pemrosesan gambar untuk membuat, memodifikasi, menggambar, atau mengonversi gambar (foto) dalam aplikasi. Menawarkan: pemrosesan gambar lintas platform, termasuk tetapi tidak terbatas pada konversi antara berbagai format gambar (termasuk pemrosesan gambar multi-halaman atau multi-bingkai yang seragam), modifikasi seperti menggambar, bekerja dengan grafik primitif, transformasi (mengubah ukuran, memotong, membalik & memutar , binarisasi, skala abu-abu, sesuaikan), fitur manipulasi gambar lanjutan (pemfilteran, dithering, masking, deskewing), dan strategi pengoptimalan memori. Ini adalah perpustakaan mandiri dan tidak bergantung pada perangkat lunak apa pun untuk operasi gambar. Seseorang dapat dengan mudah menambahkan fitur konversi gambar berkinerja tinggi dengan API asli dalam proyek. Ini adalah 100% API lokal pribadi dan gambar diproses di server Anda.Sesuaikan SVG melalui Aplikasi Online
Sesuaikan dokumen SVG dengan mengunjungi situs web Live Demos kami. Demo langsung memiliki manfaat sebagai berikut
SVG Apa SVG Format Berkas
File SVG adalah File Grafik Vektor Scalable yang menggunakan format teks berbasis XML untuk menggambarkan tampilan gambar. Kata Scalable mengacu pada fakta bahwa SVG dapat diskalakan ke berbagai ukuran tanpa kehilangan kualitas apa pun. Deskripsi berbasis teks dari file tersebut membuat mereka independen dari resolusi. Ini adalah salah satu format yang paling banyak digunakan untuk membangun situs web dan mencetak grafik untuk mencapai skalabilitas. Format tersebut hanya dapat digunakan untuk grafik dua dimensi sekalipun. File SVG dapat dilihat/dibuka di hampir semua browser modern termasuk Chrome, Internet Explorer, Firefox, dan Safari.
Baca selengkapnyaFormat Penyesuaian yang Didukung Lainnya
Menggunakan Python, seseorang dapat dengan mudah Menyesuaikan berbagai format termasuk.