用 FaaS 实现比优图更灵活的大量图片快速加工能力

背景

前几天有个朋友的一个公益策划不小心泄漏后,实在在太火,在朋友圈刷屏了,导致后台服务器的处理能力成为瓶颈,不得不临时扩容了数十台服务器来处理大量的图片。和他们CTO聊了一下,原来为了保证被分享到朋友圈的每个捐款图片都独立可追踪,他们采用了临时合成带有动态二维码和用户昵称的朋友圈分享图片。这样每当有一个人分享到朋友圈的时候,服务器就要临时计算一个二维码并且把它叠加到一张已有的图片上面,因此服务器成为了性能瓶颈。

其实像这样的大量图片的规则化加工,最好是由优图这样的海量图片处理平台来服务,但是叠加动态二维码这个需求太特殊了,之前并没有人提出来过,所以优图目前只能做到把一张已有的图片作为水印叠加到另一张图片里面去,还做不到动态的生成二维码并立刻叠图。

在云时代,发现一个这样的市场需求,正确的打开姿势肯定不是去找优图团队提需求,等下一次版本迭代,而是通过腾讯云函数的能力自己写非常少的几行代码,实现一个比优图更加个性化的,同时和优图一样具有强大的批量处理能力的服务。

如何做

1. 为了偷懒,我们直接进入腾讯云实验室 https://cloud.tencent.com/developer/labs/lab/10172 开始一个新实验。

2. 在“在虚拟环境下安装 Pillow 和 COS SDK”这一步,多执行一个安装qr支持包的操作

pip install qrcode

3. 在thumbnail.py文件中,在最前面加一行

import qrcode

并把图片处理函数 resize_image 略作修改,插入空行分割的几行(如果不需要压缩图片 image.thumbnail 那一行也可以删掉)

def resize_image(image_path, resized_path):
    with Image.open(image_path) as image:
    
        image.thumbnail(tuple(x / 2 for x in image.size))
        qrimage = qrcode.make('Some data here')
        box = (1,1,289,289)
        region = qrimage.crop(box)
        image.paste(region,box)
        
        image.save(resized_path)

4. 其他操作原封不动按照实验室的指引操作,完成实验

好了,现在我们得到了一个可以往自己的图片上动态叠加自己的二维码生成一个新图片的云函数。

示例效果

除了实验室已经做好的全部程序,一共只需要敲 6 行 shell 和 python 代码,就可以开始爽起来了!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

史上最全,0基础快速入门Python

首先,在学习之前一定会考虑一个问题——Python版本选择 对于编程零基础的人来说,选择Python3。 ? 1、学习基础知识 首先,Python 是一个有条理...

3944
来自专栏企鹅号快讯

微信跳一跳技术手段高分秘籍:不仅可以用 Python 刷分,竟然还可以直接改分

如果你每次都能挑到各自的正中间的话,可以 + 2 分,如果连着跳到中间会 + 4、+6、+8、+10…… 跳到污水井盖上面,停留 2 秒,等到下水道声音响起直接...

20310
来自专栏JackieZheng

自己动手写可视化软件(代码已开源)

  一年多前,那时候我还在实习,正好上一个项目接近的尾声,紧随而来的就是一个大数据一体化的项目,包括了数据的采集、处理、计算、整合以及数据展示等。   而可视化...

2089
来自专栏企鹅号快讯

如何将Civil3D生成的道路模型导出至Infraworks

本文共:641 字 12 图 预计阅读时间: 8 分钟 本文作者:同济大学BIM学生俱乐部成员李东帅 一、Civil3d处理过程 1. 生成道路曲面 右键——道...

19910
来自专栏吉浦迅科技

如何利用Python在Jetson TX2上抓取和显示摄像头影像

本文转载自JK Jung的帖子:https://jkjung-avt.github.io/tx2-camera-with-python/如果有侵犯到贴主利益,请...

47812
来自专栏tkokof 的技术,小趣及杂念

《KOF2002》“扯蛋”修改记录

   本人比较喜欢游戏,格斗游戏尤为喜欢,平日没事多会游玩几番,而这游戏之间便有曾经风靡一时的《KOF2002》。

772
来自专栏开心的学习之路

从零开始搭建「图像处理实验」平台(React&Flask&MongoDB)

为了争取提前毕业,最近需要做大量图像处理的实验,改代码、调参、存结果,由于专注于实验,所以丝毫没顾及代码质量,又懒得重构,导致今天写的代码明天就忘了什么意思,加...

956
来自专栏数据小魔方

妈妈再也不用担心我不会配色了

记得之前的推送有两篇专门介绍关于取色的 但是毕竟是操作性的东西 总得动动手才能有感觉 今天就教大家怎么取色 会用到四个小软件及PPT插件 ColorPix(桌...

3077
来自专栏FreeBuf

无线键盘易被监听,不知不觉导致信息泄露

在用户使用计算机时,键盘是信息输入的主要媒介,键盘输入包含大量的私人机密信息,包括帐号密码等,所以键盘侦听被各种攻击者所大量采用,成为一种普遍但是破坏力强大的攻...

2727
来自专栏AI研习社

问答 | 请问有没有好的可以根据关键词提取文章摘要的开源项目?要支持中文的。

753

扫码关注云+社区