سؤال

وكيفية رسم جريء نص / مائل مع PIL؟ ImageFont.truetype (ملف، حجم) لديه الخيار لتحديد حجم الخط فقط.

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

المحلول

استخدم النسخة مائل / جريء الخط

نصائح أخرى

والعديد من الخطوط استخدام ملفات TTF مختلفة لإصدارات مائل / جريئة، لذلك أتصور لو كنت مجرد تحديد أن ملف انها ستعمل.

وحل hacky بدلا لجعل الخط الغامق إذا (لأي سبب كان) لم يكن لديك نسخة الجريء منفصل من الخط لطباعة النص نفسه عدة مرات مع تعويض طفيف.

andaleMono = ImageFont.truetype(ANDALE_MONO_PATH,16)
text = "hello world"
mainOffset = (50,50)
xoff, yoff = mainOffset
draw.text(mainOffset,text,font=andaleMono,fill='black')
draw.text((xoff+1,yoff+1),text,font=andaleMono,fill='black')
draw.text((xoff-1,yoff-1),text,font=andaleMono,fill='black')

حسنا، هذا هو تعليقي الأول. هنا نذهب.

وسأحاول توضيح الإجراء. في البداية ما فعلته كان استخدام "اسم" الخط مثل هذا

font = ImageFont.truetype("C:\Windows\Fonts\\Arial Negrita.ttf",25)

ولكن فقط حصلت على بعض الأخطاء مثل هذا:

    Traceback (most recent call last):
  File "C:/Users/555STi/PycharmProjects/PIL/img.py", line 8, in <module>
    font = ImageFont.truetype("C:\Windows\Fonts\Arial negrita.ttf",25)
  File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 262, in truetype
    return FreeTypeFont(font, size, index, encoding)
  File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 142, in __init__
    self.font = core.getfont(font, size, index, encoding)
IOError: cannot open resource

وثم تذكرت أنه في بعض الأحيان الخطوط ديها "أسماء" أخرى أو "أسماء"، لذلك، ما فعلته هو الذهاب إلى مجلد الخطوط، ثم فتحت الخط اللي تبونه ارييل عرض كل الأنماط مثل نيكريتا (جريئة]، cursiva (مائل) ، وما إلى ذلك.

هل من حق انقر على غرار "نيكريتا"، اختار "خصائص" وبعد ذلك كان هناك "واسمه الحقيقي" الخط.

في حالتي، كان اسم "ariblk"

وبعد ذلك، في نهاية المطاف، وتستخدم فقط اسم من هذا القبيل.

font = ImageFont.truetype("C:\Windows\Fonts\\ariblk.ttf",25)

وأنا أعلم أن هذا المنصب هو القديمة، ولكن ساعدني اليوم للوصول الى حل. لذلك آمل أن يساعد أي شخص.

=)

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