استخدم Python لتنسيق الصور الثنائية CDR.
قم بإنشاء تطبيقات Python لدمج الصور والصور CDR عبر واجهات برمجة تطبيقات الخادم
كيفية ثنائية الصور والصور CDR باستخدام Python
كان إدخال التصوير الفوتوغرافي الملون بمثابة تحول محوري في مجال التصوير الفوتوغرافي. ومع ذلك، فإن جاذبية الصورة الكلاسيكية بالأبيض والأسود لا تزال قائمة. على الرغم من انتشار الكاميرات الملونة، لا يزال العديد من الأفراد يختارون تحويل صورهم إلى الأبيض والأسود. يتم تحقيق هذا التحويل عادةً من خلال عملية التحويل الثنائي، حيث يتم استبدال كل بكسل بقيمة ثنائية: “0” للأبيض و"1" للأسود. غالبًا ما تُستخدم الصور بالأبيض والأسود لأكثر من مجرد أغراض فنية، حيث تجد تطبيقًا عمليًا في سيناريوهات مثل طباعة الرسوم التوضيحية في منشورات مثل الكتب والصحف. ضمن مكتبة الرسومات Python، لديك القدرة على تعيين حد سطوع البكسل. تفترض البكسلات الموجودة أسفل هذه العتبة اللون الأسود، بينما تكتسب البكسلات الموجودة فوقها اللون الأبيض. تتوفر أيضًا تقنية الثنائية التكيفية، مع الأخذ في الاعتبار قيم البكسل المحيطة لإنشاء انتقالات سلسة بين حدود الألوان في الصورة بالأبيض والأسود الناتجة. لتنسيق ملفات CDR الثنائية، سوف نستخدمها Aspose.Imaging for Python via .NET API وهي واجهة برمجة تطبيقات غنية بالميزات وقوية وسهلة الاستخدام لمعالجة الصور وتحويلها لمنصة Python. يمكنك تثبيته باستخدام الأمر التالي من أمر النظام الخاص بك.
سطر أوامر النظام
>> pip install aspose-imaging-python-net
خطوات لثنائي CDR s عبر Python
أنت بحاجة إلى aspose-imaging-python-net لتجربة سير العمل التالي في بيئتك الخاصة.
- تحميل ملفات CDR بطريقة Image.Load
- ثنائيات الصور.
- حفظ الصورة المضغوطة على القرص بتنسيق Aspose.Imaging المدعوم
متطلبات النظام
Aspose.Imaging for Python مدعوم على جميع أنظمة التشغيل الرئيسية. فقط تأكد من أن لديك المتطلبات الأساسية التالية.
- Microsoft Windows / Linux مع .NET Core Runtime.
- مدير حزم Python و PyPi.
ثنائية CDR الصور - 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() |
حول Aspose.Imaging Python API
Aspose.Imaging API هو حل لمعالجة الصور لإنشاء أو تعديل أو رسم أو تحويل الصور (الصور) داخل التطبيقات. يوفر: معالجة الصور عبر الأنظمة الأساسية ، بما في ذلك على سبيل المثال لا الحصر ، التحويلات بين تنسيقات الصور المختلفة (بما في ذلك معالجة الصور متعددة الصفحات أو متعددة الإطارات) ، والتعديلات مثل الرسم ، والعمل مع الرسوم الأولية ، والتحويلات (تغيير الحجم ، والقص ، والوجه والتدوير ، وثنائي ، وتدرج رمادي ، وضبط) ، وميزات معالجة الصور المتقدمة (الترشيح ، والتردد ، والإخفاء ، والتكديس) ، واستراتيجيات تحسين الذاكرة. إنها مكتبة قائمة بذاتها ولا تعتمد على أي برنامج لعمليات الصور. يمكن للمرء بسهولة إضافة ميزات تحويل الصور عالية الأداء باستخدام واجهات برمجة التطبيقات الأصلية داخل المشاريع. هذه واجهات برمجة تطبيقات داخلية خاصة بنسبة 100٪ وتتم معالجة الصور على خوادمك.قم بترميز CDR ثنائياً عبر تطبيق عبر الإنترنت
قم بترجمة مستندات CDR بشكل ثنائي من خلال زيارة Live Demos website . يحتوي العرض التوضيحي المباشر على الفوائد التالية
CDR ما هو CDR تنسيق الملف
ملف CDR هو ملف صورة رسم متجه تم إنشاؤه أصلاً باستخدام CorelDRAW لتخزين الصورة الرقمية المشفرة والمضغوطة. يحتوي ملف الرسم هذا على نص وخطوط وأشكال وصور وألوان وتأثيرات للتمثيل المتجه لمحتويات الصورة. يمكن فتح ملفات CDR باستخدام CorelDRAW باعتباره التطبيق الأساسي ويمكن أيضًا تحويلها إلى تنسيقات أخرى مثل PDF و JPG و PNG و BMP و AI. يمكن استخدامه لتمثيل بيانات الرسومات المختلفة مثل الكتيبات والصحف والمغلفات والبطاقات البريدية. إلى جانب CorelDRAW ، يمكن لمنتجات Corel الأخرى مثل Corel Paintshop Pro ومجموعة CorelDRAW Graphics أيضًا فتح تنسيقات ملفات CDR.
اقرأ أكثرتنسيقات ثنائية أخرى مدعومة
باستخدام Python ، يمكن للمرء بسهولة إنشاء ثنائيات تنسيقات مختلفة بما في ذلك.