بقلم ليوناردو - عملا
asciipixels هي مكتبة سريعة وسهلة لتحويل الصور ومقاطع الفيديو إلى فن ASCII القابل للتخصيص للغاية. تحتوي المكتبة على أربع وظائف أساسية تقوم بجميع أعمال الصعود ، وحفظ النتيجة كصورة أو gif أو الفيديو: image.asciify() ، image.dynamic_asciify() ، video.asciify() و video.dynamic_asciify() .
من أجل تحكم أكثر تفصيلاً لما ينبغي أن يفعله البرنامج ، تتوفر أيضًا فئة CoreAsciifier (الفئة وراء وظائف Asciipixels الأساسية) ووظائف الغلاف لكل من ImageMagick و FFMPEG.
ما يميز مكتبة Asciipixels حقًا هو الوظيفة الديناميكية . في الوظائف image.dynamic_asciify() و video.dynamic_asciify() يمكن أن تتغير بعض المعلمات بمرور الوقت. يمكن للمستخدم تمرير أجهزة الاتصال التي تتلقى رقم الإطار وإرجاع قيمة المعلمة ، بدلاً من تمرير القيمة المرمزة نفسها. في المثال أدناه ، تزداد معلمة definition بمقدار 16 وحدة كل إطار. تم تصميمه من خلال تعبير lambda بسيط للغاية.

ملاحظة: يعتمد Asciipixels على برنامجين معينين لخط الأوامر: ImageMagick و FFMPEG . إذا كنت من CLI Nerd وقمت بالفعل بتثبيت هذه ، فاستمر في هذا الدليل. إذا لم يكن كذلك ، انتقل إلى قسم التثبيت.
استخدم الوظيفة المقابلة اعتمادًا على حالة الاستخدام الخاصة بك:
image.asciify() يحول الصورة إلى الصورة. يتم إرجاع فن ASCII الذي تم إنشاؤه كسلسلة وحفظها اختياريًا في TXT.
image.dynamic_asciify() يحول الصورة إلى GIF أو MP4 فيديو. يدعم المعلمات الديناميكية.
video.asciify() يحول الفيديو إلى الفيديو.
video.dynamic_asciify() يحول الفيديو إلى الفيديو. يدعم المعلمات الديناميكية.
جميع الأربعة لديهم path ملف الإدخال كوسيطة أول. بقية الوسيطات جميعها لها قيم افتراضية . شيء ما على هذا المنوال يكفي لتبدأ:
import asciipixels as ap
ap . image . asciify ( 'foo.png' ) سيؤدي ذلك إلى إنشاء صورة جديدة مسحّلة تدعى foo2.png .
من المهم أن نلاحظ أن جميع الوظائف باستثناء image.asciify() تتطلب a if __name__ == '__main__' وذلك لأن المكتبة تستخدم المعالجة المتعددة لتسريع توليد الإطار. لذلك ، من أجل تصحيح مقطع فيديو ، على سبيل المثال ، يمكنك القيام بما يلي:
import asciipixels as ap
if __name__ == '__main__' :
ap . video . asciify ( 'foo.mp4' ) المعلمة الأكثر أهمية للعب معها هي definition . إنه ببساطة عدد الأحرف في المحور الأفقي . الافتراضات إلى 100 في جميع الوظائف. ضعه مرتفعًا جدًا وسيبدو فن ASCII مثل الفن. اضبطه منخفضًا جدًا وسيبدو مثل ASCII.
أيضًا ، ضع في اعتبارك أنه يمكنك ضبط دقة الإخراج للصورة/الفيديو. تقارب أبعاد الإخراج أبعاد الإدخال بشكل افتراضي ، ولكن يمكنك تغيير ذلك باستخدام وسيطة out_width .
أخيرًا ، إذا قررت العمل مع النص المظلم على خلفية الضوء ، تذكر تعيين reverse_chars على True من أجل تصحيح رسم خرائط البكسل إلى ASCII.
كمثال أخير ، قمت بعمل GIF BigWeld في قسم "ما هو" ديناميكي مع الكود التالي:
import asciipixels as ap
if __name__ == '__main__' :
ap . image . dynamic_asciify (
'ceo.png' ,
bg_color = 255 ,
txt_color = 0 ,
definition = lambda f : f * 16 ,
fps = 2 ,
frame_count = 7 ,
out_width = 1000 ,
reverse_chars = True
)يمكن العثور على القائمة الكاملة للمعلمات/الوسائط الخاصة بوظيفة أساسية معينة في وثائقها.
لتثبيت Asciipixels ، استخدم PIP في المحطة:
النوافذ
pip install asciipixels
ماكوس / لينكس
python3 -m pip install asciipixels
يحتوي Asciipixels على تبعيات لم يتم تثبيتها تلقائيًا. هذه هي ImageMagick ، لمعالجة الصور ، و FFMPEG ، للتلاعب بالفيديو والصوت. يمكنك تنزيلها من مواقعهم الرسمية أو باستخدام Homebrew (إن أمكن).
تثبيت ImageMagick هنا
تثبيت FFMPEG هنا
ASCII ART هو ببساطة تمثيل الصور (أو الفيديو) مع الأحرف والرسائل. يمكن أن يتكون هذا الفن باستخدام الأحرف التي تتطابق مع سطوع أو محيط جزء من الصورة. تعمل هذه المكتبة مع جانب السطوع.