سؤال

أنا أتطلع إلى إنشاء favicon.ico الملفات برمجيًا من Python، لكن PIL يدعم القراءة فقط ico ملفات.

هل كانت مفيدة؟

المحلول

وفق ويكيبيديا يمكن للمتصفحات الحديثة التعامل مع الرموز المفضلة بتنسيق PNG، لذا ربما يمكنك إنشاء ذلك؟

بدلا من ذلك مقالة ICO يصف الشكل...

نصائح أخرى

يمكنك استخدام وسادة:

from PIL import Image
filename = r'logo.png'
img = Image.open(filename)
img.save('logo.ico')

اختياريًا، يمكنك تحديد أحجام الأيقونات التي تريدها:

icon_sizes = [(16,16), (32, 32), (48, 48), (64,64)]
img.save('logo.ico', sizes=icon_sizes)

ال مستندات الوسادة لنفترض أنه بشكل افتراضي سيولد الأحجام[(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)] وأي حجم أكبر من الحجم الأصلي أو 255 سيتم تجاهله.

نعم هو في يقرأ فقط قسم من المستندات، لكنه يعمل إلى حد ما.

ربما يعمل ما يلي:

  • قم بإنشاء صورة الرمز الخاصة بك باستخدام PIL
  • قم بتحويل الصورة إلى تنسيق .ico باستخدام واجهة python إلى ImageMagick، بايثون ماجيك

لم أجرب هذا النهج.كان برنامج سطر أوامر تحويل ImageMagick قادرًا على تحويل ملف بتنسيق .png إلى تنسيق .ico، لذلك يدعم ImageMagick على الأقل تنسيق .ico.

لا أعرف ما إذا كان هذا ينطبق على جميع الحالات، ولكن في نظام التشغيل Windows XP، يمكن أن يكون ملف .ico بحجم bmp 16x16 أو 32x32 أو 64x64.ما عليك سوى تغيير الامتداد إلى ico من bmp ​​وستكون جاهزًا للبدء.

اذا كنت تمتلك imageio, ، (ربما تكون أفضل مكتبة لقراءة/كتابة الصور في بايثون)، يمكنك استخدامها:

import imageio

img = imageio.imread('logo.png')
imageio.imwrite('logo.ico', img)

التثبيت سهل مثل

pip install imageio
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top