python 闲鱼_python

由于微信规则不允许在朋友圈发送链接地址,所以经常会看到一些商品的推广图片,图片上附带一些基本信息和二维码,长按图片也可以识别图片打开链接,这就是所谓上有政策下有对策吧……

废话不多说,今天就带各位使用

先简单介绍下

This library provides extensive file format support, an efficient internal representation, and fairly powerful image processing capabilities.The core image library is designed for fast access to data stored in a few basic pixel formats. It should provide a solid foundation for a general image processing tool.

第一步:确认参数

前面已经说过了,一张简单的分享图片包括:一张背景图、一个二维码、一段或多段描述。二维码说白了也就是一个链接。

第二步:背景图获取

from PIL import Image

im = Image.open('background.jpg')

这就是Pillow打开图片的最基本的方法,但是这只是读取本地图片,假如我们想要获取网络图片呢?这时候就需要之前提到过的requests库,只需要一句代码即可:

my_response = requests.get(tbpic, stream=True).content

im = Image.open(BytesIO(my_response))

注意下:这里的BytesIO是python的自带的内存二进制类型

第三步:转二维码

超链接转二维码很简单,通过qrcode这个第三方库即可,附上代码:

qr_obj = qrcode.make(tburl, border=2)

qr_pic = BytesIO()

qr_obj.save(qr_pic, format='PNG')

第四步:图片叠加

通过前面的步骤,已经将背景图片和二维码都读入了内存,并以BytesIO的类型存在了。在使用Pillow之前,先理一下要做的事情,将二维码图片放在背景图片上方,这就需要确定二维码放置的位置以及大小。在确定这些后可以就可以使用:

def paste(self, im, box=None, mask=None):

其中im就是需要叠加上去的图片,这里就是二维码图片;

box是在背景图的位置,一个左上右下的四整数元组;

mask是一个模板图像,这个模板图像需要和im大小一样,这个参数暂时用不到;

第五步:添加文字

添加文字需要用到Pillow的ImageDraw模块,直接看代码,我在代码里解释:

from PIL import Image, ImageDraw, ImageFont

draw = ImageDraw.Draw(im)

#设置字体和大小

_font = ImageFont.truetype(u"txjt.ttf", s35)

_color = 'red'

#写入文字

#第一个参数xy:距离左边和上边的距离

#第二个参数text:文字内容

#第三个参数font:字体对象_font

#第四个参数fill:颜色

draw.text((350, 40), str("显示的文字"), font=_font, fill=_color)

第六步:保存图片

with open('complete.png', 'wb') as f_o:

f_o.write(im.getvalue())

注意点:

1.安装pillow可能会因为被墙,可以去git直接下载

2.也许你会遇到:image file is truncated (XX bytes not processed) 这样的错误

需要在开始import的时候加上

from PIL import ImageFile

ImageFile.LOAD_TRUNCATED_IMAGES = True

3.文字需要用用str进行编码转换

最后附上粗糙的效果图:

版权所属,如需转载,请注明出处:搜闲鱼

你可能感兴趣的:(python,闲鱼)