用 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 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

Xcelsius(水晶易表)系列9——动态选择器应用(过滤器)

今天继续跟大家分享关于水晶易表的动态选择器高级用法——过滤器。 这个部件可以将多层帅选筛选自动化,比如我们前两篇所讲解的多重筛选案例中, 需要为每一个筛选字段单...

3166
来自专栏玉树芝兰

如何对PDF文献做可视化分析?

看了大量文献后,你的硬盘上想必存下不少PDF文件。能否充分利用它们,挖掘出你独特的领域知识地图呢?本文为你提供一种简便易行的办法。

932
来自专栏玉树芝兰

如何用云端 GPU 为你的 Python 深度学习加速?

下午,我用 Python 深度学习框架 Keras 训练了一个包含3层神经网络的回归模型,预测波士顿地区房价。

821
来自专栏DeveWork

为你的WordPress 主题添加结构化数据/丰富文本摘要,高亮搜索结果(上)

对于SEO ,咱们这些业余人士只能是从技术的角度来驾驭。网站经营的前期需要做好搜索引擎优化,对于WordPress 网站,其实最好的方式是在WordPress ...

3056
来自专栏量子位

苹果新推出的CoreML怎么用?有哪些bug?这里有一份教程

安妮 编译自 Hackernoon 量子位出品 | 公众号 QbitAI 昨天,年仅18岁的iOS app开发者Alex Wulff在Hackrnoon上发布了...

3487
来自专栏机器之心

教程 | 如何使用Swift在iOS 11中加入原生机器学习视觉模型

选自Hackernoon 机器之心编译 作者:Alex Wulff 参与:侯韵楚、李泽南 随着 WWDC 大会上 iOS 11 的发布,苹果终于推出了原生机器学...

3125
来自专栏快乐八哥

数据可视化-EChart2.0.0使用中遇到的2个问题

之前项目中都是使用FusionChart和HighChart,基本都是没有购买商业许可。然后现在开发的系统需要交付给客户使用。所以现在图表控件不能直接使用Fus...

1732
来自专栏何俊林

一个跑步时用的轨迹记录和计步器APP

今天推荐是一款像咕咚一样计步和轨迹记录app,作者zhenqianfan github:https://github.com/Alost/TrackPedo...

27710
来自专栏肖洒的博客

基于Python的微信好友分析

“如果我比别人看得远,那是因为我站在巨人的肩膀上”–不知道牛顿说了没 本文利用Python3的itchat包简单的分析了一下自己的微信好友。

2072
来自专栏点滴积累

geotrellis使用(二十七)栅格数据色彩渲染

目录 前言 复杂原因及思路分析 实现过程 总结 一、前言        今天我们来研究一下这个看似简单的问题,在地理信息系统中颜色渲染应当是最基本的操作和功能,...

3925

扫码关注云+社区