python 对图片进行简单的处理

 更新时间:2021年06月22日 17:03:31   作者:临时营地  
介绍一些图片处理的Python代码,有了这些处理代码,我们可以很方便的处理一些图片,Python这里处理图片一般都使用Pillow包,有此需求的朋友可以参考下

安装Pillow包

pip install Pillow

图片划线

from PIL import Image, ImageDraw
im = Image.open("blur.jpg")
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
del draw
# write to stdout
im.save("blur.jpg", "PNG")

图片写字

有的时候我们可能需要往图片上写一些文字,比如说水印什么的,只要选择好我们本地的字体文件,直接就可以在图片上写字了

from PIL import ImageFont, ImageDraw,Image, ImageDraw
image = Image.open("image.png").convert('RGBA')
txt=Image.new('RGBA', image.size, (0,0,0,0))
font=ImageFont.truetype("c:/Windows/fonts/Tahoma.ttf", 20)
draw=ImageDraw.Draw(txt)
draw.text((txt.size[0]-100, txt.size[1]-30), "linshiyingdi", font=font)
out=Image.alpha_composite(image, txt)
out.save("imageWithText.png", "png")
out.show()

图片加图片水印

文字水印有时候不好看,想改成图片水印,也是可以的

from PIL import ImageFont, ImageDraw, Image, ImageDraw

image = Image.open("image.png")
logo = Image.open("logo.png")
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
layer.paste(logo, (50, 60))
out = Image.composite(layer, image, layer)
out.save("imageWithLogo.png", "png")
out.show()

如果水印图片过大时,可以直接缩小点,直接使用图片自带的thumbnail方法就行

from PIL import ImageFont, ImageDraw, Image, ImageDraw

image = Image.open("image.png")
logo = Image.open("logo.png")
logo.thumbnail((200, 100))
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
layer.paste(logo, (50, 60))
out = Image.composite(layer, image, layer)
out.save("imageWithLogo.png", "png")
out.show()

如下图,我们的水印图片放到了左上角,大小也非常合适。

图片模糊

from PIL import Image, ImageFilter
# 打开一个jpg图像文件,直接放到当前路径下方便点:
im = Image.open('2822.jpg')
# 应用模糊滤镜:
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.jpg', 'jpeg')

图片截取

from PIL import Image
img = Image.open("image.png")
print(img.size)
cropped = img.crop((0, 0, 1303, 734))  # (left, upper, right, lower)
cropped.save("imageCropped.png")

可以看到的是如果这个图片的长度和宽度比1303和734小的时候会有透明的填充,感觉很难看,可以将对应的长度和宽度和这两个数字做个判断

from PIL import Image

img = Image.open("image.png")
print(img.size)
right = 1303
lower = 734
if img.size[0] < 1303:
    right = img.size[0]
if img.size[1] < 734:
    lower = img.size[1]
cropped = img.crop((0, 0, right, lower))  # (left, upper, right, lower)
cropped.save("imageCropped.png")

这样白边就被干掉了

总结

人生苦短,我用 Python,在强大的Pillow帮助下,我们只需几行代码就可以实现图片的各种处理。

以上就是python 对图片进行简单的处理的详细内容,更多关于python 图片处理的资料请关注脚本之家其它相关文章!

相关文章

  • python TCP Socket的粘包和分包的处理详解

    python TCP Socket的粘包和分包的处理详解

    这篇文章主要介绍了python TCP Socket的粘包和分包的处理详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • pygame实现俄罗斯方块游戏(基础篇3)

    pygame实现俄罗斯方块游戏(基础篇3)

    这篇文章主要介绍了pygame实现俄罗斯方块游戏基础的第3篇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python快速查找list中相同部分的方法

    Python快速查找list中相同部分的方法

    今天小编就为大家分享一篇Python快速查找list中相同部分的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python如何对文件进行重命名

    Python如何对文件进行重命名

    这篇文章主要介绍了Python如何对文件进行重命名,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • conda下载各种包时如何避免版本不匹配问题

    conda下载各种包时如何避免版本不匹配问题

    在使用python和conda时,由于Python版本不匹配,可能会导致一些问题的出现,本文主要介绍了conda下载各种包时如何避免版本不匹配问题,感兴趣的可以了解一下
    2024-03-03
  • 关于Python 位运算防坑指南

    关于Python 位运算防坑指南

    这篇文章主要介绍了关于Python 位运算防坑指南,小编将剧烈向大家说明并且列举python及C#两种语言,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • Python subprocess.Popen 实时输出 stdout的解决方法(正确管道写法)

    Python subprocess.Popen 实时输出 stdout的解决方法(正确管道写法)

    这篇文章主要介绍了Python subprocess.Popen实时输出stdout正确管道写法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Python中Qslider控件实操详解

    Python中Qslider控件实操详解

    在本篇文章里小编给大家整理的是一篇关于Python中Qslider控件实操详解内容,对此有兴趣的朋友们可以跟着学习参考下。
    2021-02-02
  • Python Scrapy多页数据爬取实现过程解析

    Python Scrapy多页数据爬取实现过程解析

    这篇文章主要介绍了Python Scrapy多页数据爬取实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 详解 PyTorch Lightning模型部署到生产服务中

    详解 PyTorch Lightning模型部署到生产服务中

    这篇文章主要为大家介绍了如何将PyTorch Lightning模型部署到生产服务中的详细教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论