WMF Görüntü Titreme için Python kullanın
Sunucu API’leri aracılığıyla WMF Görüntü ve Fotoğrafları Taklit Etmek için Python Uygulama Oluşturun
Python ile WMF Görüntü ve Fotoğrafların Dither'i Nasıl Yapılır?
Bir web sitesine ilişkin görsel ve fotoğraf parametrelerinin iyileştirilmesi, web trafiğini önemli ölçüde etkiler. Bu optimizasyonlar arasında, görüntünün renk paletinin azaltılması, dosya boyutlarını etkili bir şekilde en aza indirir ve sayfa yüklemeyi hızlandırır. Ancak renk gradyanlarında ani kenarları veya bozuklukları önlemek için renk taklidi yönteminden yararlanılması önerilir. Bu teknik, renk geçişlerinin iyileştirilmesine ve genel görüntü kalitesinin artırılmasına yardımcı olur. Görüntü algısını olumlu yönde etkileyen hafif bir “gürültü” ortaya çıkarır. WMF biçimindeki renk taklidi görüntüleri için şunu uygulayacağız: Python platformu için zengin özelliklere sahip, güçlü ve kullanımı kolay bir görüntü işleme ve dönüştürme API’si olan Aspose.Imaging for Python via .NET API. Sistem komutunuzdan aşağıdaki komutu kullanarak kurabilirsiniz.
Sistem komut satırı
>> pip install aspose-imaging-python-net
Python aracılığıyla WMF'leri Taklit Etme Adımları
Aşağıdaki iş akışını kendi ortamınızda denemek için aspose-imaging-python-net gerekir.
- WMF dosyalarını Image.Load yöntemiyle yükleyin
- Titreşim görüntüleri;
- Sıkıştırılmış görüntüyü Aspose.Imaging formatında diske kaydedin
sistem gereksinimleri
Aspose.Imaging for Python tüm büyük işletim sistemlerinde desteklenir. Sadece aşağıdaki ön koşullara sahip olduğunuzdan emin olun.
- .NET Core Runtime ile Microsoft Windows / Linux.
- Python ve PyPi paket yöneticisi.
WMF görüntüleri taklidi - Python
from aspose.imaging import Image, RasterImage, DitheringMethod, IMultipageImage | |
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 floyd_steinberg_dithering(): | |
filter_images(lambda image: image.dither(DitheringMethod.FLOYD_STEINBERG_DITHERING, 4), "floydsteinbergdithering") | |
def threshold_dithering(): | |
filter_images(lambda image: image.dither(DitheringMethod.THRESHOLD_DITHERING, 4), "thresholddithering") | |
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: | |
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 = os.path.join( | |
templates_folder, | |
f"{filter_name}_page{page_index}_{format_ext}.png") | |
page.save(file_name, PngOptions()) | |
delete_file(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 | |
# run | |
floyd_steinberg_dithering() | |
threshold_dithering() |
Python API için Aspose.Imaging Hakkında
Aspose.Imaging API, uygulamalar içinde görüntüleri (fotoğrafları) oluşturmak, değiştirmek, çizmek veya dönüştürmek için kullanılan bir görüntü işleme çözümüdür. Şunları sunar: Çeşitli görüntü formatları (tek tip çok sayfalı veya çok çerçeveli görüntü işleme dahil) arasındaki dönüştürmeler dahil ancak bunlarla sınırlı olmamak üzere çapraz platform Görüntü işleme, çizim, grafik temel öğeleriyle çalışma, dönüştürmeler (yeniden boyutlandırma, kırpma, çevirme ve döndürme) gibi değişiklikler , ikilileştirme, gri tonlama, ayarlama), gelişmiş görüntü işleme özellikleri (filtreleme, renk taklidi, maskeleme, eğrilik düzeltme) ve bellek optimizasyon stratejileri. Bu bağımsız bir kitaplıktır ve görüntü işlemleri için herhangi bir yazılıma bağlı değildir. Projelere yerel API’ler ile yüksek performanslı görüntü dönüştürme özellikleri kolayca eklenebilir. Bunlar %100 özel şirket içi API’lerdir ve görüntüler sunucularınızda işlenir.WMF’leri Çevrimiçi Uygulama ile Dither
Canlı Demolar web sitemizi ziyaret ederek WMF belgelerinde renk taklidi yapın. Canlı demo aşağıdaki avantajlara sahiptir
WMF Nedir WMF Dosya formatı
WMF uzantılı dosyalar, vektörün yanı sıra bitmap formatındaki görüntü verilerini depolamak için Microsoft Windows Meta Dosyasını (WMF) temsil eder. Daha doğru olmak gerekirse, WMF, aygıttan bağımsız Grafik dosya biçimlerinin vektör dosya biçimi kategorisine aittir. Windows Grafik Aygıt Arabirimi (GDI), bir görüntüyü ekranda görüntülemek için bir WMF dosyasında depolanan işlevleri kullanır. Gelişmiş Meta Dosyaları (EMF) olarak bilinen WMF'nin daha gelişmiş bir sürümü daha sonra yayımlandı ve bu, biçimi daha zengin özelliklere sahip hale getirdi. Pratik olarak WMF, SVG'ye benzer.
Daha fazla okuDesteklenen Diğer Titreme Biçimleri
Python kullanarak, aşağıdakiler dahil olmak üzere farklı formatları kolayca Titreme yapabilirsiniz.