سؤال

النظر في التعليمات البرمجية التالية: من صورة استيراد PIS، Imagedraw، ImageFont

def addText(img, lTxt):
    FONT_SIZE = 10
    INTERLINE_DISTANCE = FONT_SIZE + 1
    font = ImageFont.truetype('arial.ttf', FONT_SIZE)
    lTxtImageHeight = INTERLINE_DISTANCE * len(lTxt)
    # create text image 
    lTxtImg = Image.new('RGBA', (img.size[1], lTxtImageHeight), 255)
    lTxtImgDraw = ImageDraw.Draw(lTxtImg, )
    for (i, line) in enumerate(lTxt):
      lTxtImgDraw.text((5, i * INTERLINE_DISTANCE), line, font=font, fill='#000000')
    # rotate text image
    lTxtImg = lTxtImg.rotate(90)
    # create new transparent image ret
    ret = Image.new('RGBA', (img.size[0] + lTxtImageHeight, img.size[1]), 255)
    # paste the image to ret
    ret.paste(img, (0,0))
    # paste the text to ret
    ret.paste(lTxtImg, (img.size[0], 0), lTxtImg)
    return ret

img = Image.open('in.png')
addText(img, ['lorem', 'ipsum', 'dolores']).save('out.png')

فيما يلي المدخلات وملفات الإخراج هذا هو المدخلات

الإدخال http://img16.imageshack.us/img16/8229/73936270.png.

وهذا هو الإخراج

الإخراج http://img94.imageshack.us/img94/531/ATJ.PNG.

كما قد ترى، تحتوي صورة الإخراج على الكثير من الضوضاء المحمر حول النص. كيف يمكنني القضاء على هذا النزول؟

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

المحلول

أقترح كتابة الصور النصية المتوسطة لملف (النص، ثم النص المستورم)، لعزل حيث تظهر المصنوعات اليدوية أولا.

يمكن أن يكون أحد الاحتمالات الأخرى هو أن ترميز PNG يستخدم Pallete بدون قيم رمادية، لذلك هذه الحمر هي الأقرب. راجعت ترميز الملفات على Imageshack على الرغم من ذلك، ويبدو أنه بخير، لذلك لا أعتقد أن هذه هي المشكلة.

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