mycgb 发表于 2022-10-12 16:25

Python 给图片加水印代码

from PIL import Image, ImageDraw, ImageFont

font = ImageFont.truetype('c:/windows/Fonts/Arial.ttf', 24)
# image: 图片text:要添加的文本 font:字体
def add_text_to_image(image, text, font=font):
rgba_image = image.convert('RGBA')
text_overlay = Image.new('RGBA', rgba_image.size, (255, 255, 255, 0))
image_draw = ImageDraw.Draw(text_overlay)

text_size_x, text_size_y = image_draw.textsize(text, font=font)
# 设置文本文字位置
print(rgba_image)
text_xy = (rgba_image.size - text_size_x, rgba_image.size - text_size_y)
# 设置文本颜色和透明度
image_draw.text(text_xy, text, font=font, fill=(76, 234, 124, 180))

image_with_text = Image.alpha_composite(rgba_image, text_overlay)

return image_with_text

if __name__ == '__main__':
    im_before = Image.open("yy.jpg")
    # im_before.show()
    W_text = input('请输入水印文字:').strip()
    im_after = add_text_to_image(im_before, W_text)
    im_after.show()
    # im.save('im_after.jpg')

wkdxz 发表于 2022-10-15 10:17

谢谢楼主,最近正好需要文字转图片的代码,借用你的代码整出来了{:1_893:}



我把代码贴出来 有需要的兄弟们取走(背景是截取的Excel表格),如果要使用其他程序调用,可以使用命令行调用
python居中加文字.py"要添加的文字"


from PIL import Image, ImageDraw, ImageFont
import sys

font = ImageFont.truetype(r'C:\WINDOWS\Fonts\MSYH.TTC', 80)


def add_text_to_image(image, text, font=font):
    rgba_image = image.convert('RGBA')
    text_overlay = Image.new('RGBA', rgba_image.size, (255, 255, 255, 0))
    image_draw = ImageDraw.Draw(text_overlay)
    text_size_x, text_size_y = image_draw.textsize(text, font=font)
    # 设置文本文字位置(水平,垂直居中)
    text_xy = ((rgba_image.size - text_size_x) / 2,
               (rgba_image.size - text_size_y) / 2)
    # 设置文本颜色和透明度
    image_draw.text(text_xy, text, font=font, fill=(30, 30, 30, 255))
    image_with_text = Image.alpha_composite(rgba_image, text_overlay)
    return image_with_text


if __name__ == '__main__':

    if len(sys.argv) > 1:
      w_text = sys.argv
    else:
      w_text = input('输入要加的文字:')

    w_text = w_text.strip()

    if w_text:
      with Image.open('E:/test.jpg') as f:
            im_after = add_text_to_image(f, w_text)
            im_after.show()
      im_after.save('E:/img_with_text.png')

zzq82222 发表于 2022-12-1 15:45

楼主,这个是什么意思

DeprecationWarning: textsize is deprecated and will be removed in Pillow 10 (2023-07-01). Use textbbox or textlength instead.
text_size_x, text_size_y = image_draw.textsize(text, font=font)

32K 发表于 2022-10-12 16:33

好东西,这就去试一试
顺便沙发

大白baymax 发表于 2022-10-12 16:36

安装PIP INSTALL PIL失败是怎么回事

mycgb 发表于 2022-10-12 16:40

大白baymax 发表于 2022-10-12 16:36
安装PIP INSTALL PIL失败是怎么回事

pip install Pillow

大白baymax 发表于 2022-10-12 17:29

mycgb 发表于 2022-10-12 16:40
pip install Pillow

感谢好了

luxingyu329 发表于 2022-10-12 18:05

textsize已经被弃用了,{:1_896:}

一场荒唐半生梦 发表于 2022-10-12 18:39

有没有成品

ying656 发表于 2022-12-11 17:30

这个程序貌似不能批量给一个文件夹下的 加水印吧 。好可惜哦,因为一个一个的 有点损失这个软件的高效率了 。哈哈   不过还是很感谢你分享思路。
页: [1] 2
查看完整版本: Python 给图片加水印代码