用python制作表情包图片拼接工具

用python制作表情包图片拼接工具

写在前面

在这里插入图片描述

故事要从上面这张表情包开始讲起,看到这张表情包之后,我突发奇想,觉得可以将室友上班摸鱼的照片拼接起来,做成表情包叫他起床 激励他学习!!!于是我马上行动起来,用 pillow库随便写写仅供娱乐!大佬勿喷!

为了保护室友隐私,将照片用小蓝代替!

在这里插入图片描述

代码展示

这里写了两种拼接方式,可以根据图像比例自行调整。

又是不务正业的一天。。。

from PIL import Image
import matplotlib.pyplot as plt

def SpliceImage(img_1, img_2, save_img, mode=None):
    '''
    把两张图片左右拼接
    
    img_1   : 输入图片1(左)的路径
    img_2   : 输入图片2(右)的路径
    save_img: 保存图片的路径
    mode    : 默认为 None ,宽度保持不变,高度取最大值
              可设为'mean',宽度与高度均取两张图片的平均值
    '''
    # -----get width and height of the Images----- #
    img1 = Image.open(img_1)
    img2 = Image.open(img_2)
    w1, h1 = img1.size
    w2, h2 = img2.size
    print("原始图片1大小:{} x {}" .format(w1,h1))
    print("原始图片2大小:{} x {}" .format(w2,h2))
    
    # -----resize image with high-quality----- #
    if mode == 'mean':
        width = int((w1 + w2) / 2)
        height = int((h1 + h2) / 2)
        w1 = int(width/2)
        w2 = int(width/2)
    else:
        width = w1 + w2
        height = max(h1,h2)
        
    img1 = img1.resize((w1, height), Image.ANTIALIAS) 
    img2 = img2.resize((w2, height), Image.ANTIALIAS) 
    
    # -----create a new image-----#
    img = Image.new("RGB", (width, height), (0,0,0))
    img.paste(img1, (0,0))
    img.paste(img2, (w1,0))
    img.save(save_img)
    print("输出图片大小:{} x {}" .format(width,height))
    
    return img

if __name__ == '__main__':
    img_1 = r'.\img\sleeper.PNG'
    img_2 = r'.\img\dog.PNG'
    save_img = r'.\img\getup.jpg'
    try:
        img = SpliceImage(img_1, img_2, save_img, mode='mean')
    except:
        print('Image file error!')
    plt.imshow(img)

效果展示

针不戳!希望可以激励室友努力学习,不再偷懒!hhhhhh

在这里插入图片描述

Python中创建QQ表情包通常涉及到图像处理和一些图形库,如PIL(Python Imaging Library)或更现代的Pillow库。你可以按照以下步骤操作: 1. **安装依赖**:首先需要安装Pillow库,可以使用pip命令安装: ``` pip install pillow ``` 2. **获取素材**:你需要表情包图片文件作为基础,可以从网上下载或者将已有的表情转换成PNG等通用格式。 3. **图像处理**: - 使用`Image.open()`打开图片。 - 对每个表情图进行裁剪、缩放或者添加文字等个性化处理。 - 可能需要用到`crop()`, `resize()`, 和 `ImageDraw`模块来进行编辑。 4. **生成新表情**:将处理后的图片合并到一起,形成新的表情组合。这可能涉及到组合多个小图或者使用`ImageGrid`从PIL库来拼接。 5. **保存结果**:最后,使用`save()`函数将处理好的表情保存为图片文件。 下面是一个简单的示例代码片段,展示如何打开并显示一张图片: ```python from PIL import Image, ImageDraw, ImageFont # 打开图片 img = Image.open('original_face.png') # 创建一个绘图工具 draw = ImageDraw.Draw(img) # 添加文本(例如表情文字) font = ImageFont.truetype('arial.ttf', size=20) text = '笑脸' width, height = draw.textsize(text, font=font) x = (img.width - width) // 2 y = (img.height - height) // 2 draw.text((x, y), text, fill=(255, 255, 255), font=font) # 显示原始图片 img.show() ``` 请注意,实际的QQ表情包制作会复杂得多,因为它涉及到的表情元素众多,而且需要对每个表情进行定制化设计。如果你想要创建动态或有动画效果的QQ表情,你可能还需要结合其他技术,如SVG、gif动图或者其他动画库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值