我最近没有摸鱼,一直都在工作。只不过目前需要爬一点数据 python 做的,之后看机会分享一下。

忙着忙着老大说要生成海报,有个活动要给每个用户来个分享图。

想法

PS 批处理?脚本? 能甩出去的活都甩出去,机智如我啊

python 处理图像(PIL)。这么坑的想法,当然不是我想的了。虽然我实现了

写个页面调用之前生成长截图的服务。之前有个为了方便分享微信,做了生成长截图的服务。写个新的页面用一下即可。

我堂堂前端er,怎么能一直用别的工具呢?我的锤子呢?

ps处理

这个方案,经过我调研行不通。(也有可能是我菜)

对于批量打码,统一操作这类的还可以。

对于需要对应名字之类的比较无力

python

老大说 python。py 使用 PIL 库 写起来还蛮简单的。

py 使用这段时间以来就是感觉这个编码格式极其难受。有没有大佬解救我一下。

根据不同的类型输出数据

txt 使用字体,输出到对应位置

image 图片,覆盖输出到对应位置。mask=img要注意针对 png 来使用

qrcode 生成对应二维码

通过上面的类型,来增加我们代码的扩展性。

代码

# -*- coding: utf-8 -*-

from PIL import Image, ImageDraw, ImageFont

import qrcode

import time;

import re

def AddMoney(data):

bg = Image.new('RGBA', (data['width'], data['height']))

for item in data['list']:

print(item)

if item['type'] == 'qrcode':

qr_pil_obj = qrcode.make(item['url'], border=0).resize((item['width'], item['height']), Image.ANTIALIAS)

bg.paste(qr_pil_obj,(item['x'],item['y']))

elif item['type'] == 'image':

extname = re.search( r'(jpg|png|jpeg)$', item['url']).group()

# 加载图片

img = Image.open(item['url'])

# 缩放

if (item['width']!= '' and item['height'] != ''):

img.resize((item['width'], item['height']), Image.ANTIALIAS)

if extname == 'png':

bg.paste(img,(item['x'],item['y']), mask=img)

else:

bg.paste(img,(item['x'],item['y']))

elif item['type'] == 'text':

draw = ImageDraw.Draw(bg)

ttfront = ImageFont.truetype(item['ttfrontUrl'],item['ttfrontSize'])

draw.text((item['x'],item['y']),unicode(item['txt'],"UTF-8"), fill=(0,0,0), font=ttfront)

else:

print('------------------------------')

bg.save(data['outputName'])

data = {

'width': 750,

'height': 1334,

'outputName': './out-%s.png' % (str(time.time())),

'list':[{"type":"image","url":"./avatar.jpg","x":10,"y":360,"width":750,"height":1334},{"type":"image","url":"./bg.png","x":0,"y":0,"width":750,"height":750},{"type":"qrcode","url":"https://www.lilnong.top","x":0,"y":0,"width":120,"height":120},{"type":"text","txt":"你这个死宅说话","x":140,"y":560,"ttfrontUrl":"./abc.ttf","ttfrontSize":55},{"type":"text","txt":"还挺搞笑的","x":160,"y":630,"ttfrontUrl":"./abc.ttf","ttfrontSize":55}]

}

AddMoney(data)

长截图

这个也是极好,是之前一个 Node 的服务。省时省力。网上查也不少

前端技术处理

我堂堂前端,怎么也得露一手吧。

基于上面的页面已经成功。我们想一下我们需要干什么?把 html 转成 canvas,然后 canvas.toBlob,然后 download 美滋滋。

html2canvas 这是一个库,既然已经有写好的了,我们就不费神了。(最难的一步。。。)

拿到 cavnas 调用 API, canvas.toBlob。

微信公众号

各种忘记发。补上补上

结语

py 写代码是真的短。

前端处理需要注意跨域、URL空格等问题。

作者:linong

python制作海报_生成海报(前端 | python)相关推荐

  1. 想学python制作脚本_十分钟利用Python制作属于你自己的个性logo

    前言 词云的使用相信大家已经不陌生了,使用很简单,直接调用wordcloud包就可以了.它的主要功能是根据文本词汇和词汇频率生成图片,从中可以直观的看出各个词汇所占比重. 之前我们也介绍过一篇关于Py ...

  2. 手把手教你如何用Python制作一个电子相册?末附python教程

    这里简单介绍一下python制作电子相册的过程,主要用到tkinter和pillow这2个库,tkinter用于窗口显示照片,pillow用来处理照片,照片切换分为2种方式,一种是自动切换(每隔5秒) ...

  3. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  4. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

  5. html一键生成海报,稿定设计如何制作海报 一键生成海报的方法

    稿定设计作为一款多功能的图片制作软件,内置强大的图片编辑功能,可以帮助用户轻松解决各种作图问题,小编近期了解到很多用户不知道如何制作海报,想知道的赶快来看看下面的教程吧! 类别:图像制作   大小:3 ...

  6. html5与python工资对比_求助各位,python和前端html5如何选择?

    我讲句实在话 学前端 python 的工资当然高, 问题是你入行打算怎么办, 你可以搜一下入行的岗位, 有几个用 python 的? 就算中高端职位, python 基本也都是辅助工种 当然他们会告诉 ...

  7. 如何用python破解热点_用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快

    原标题:用30行Python代码制作wifi万能钥匙,邻居家wifi网速好快 当我们拖着疲惫的身体下班回到家,想开开心心的吹着空调风扇吃着西瓜,然后手机连上wifi打一把游戏好好舒服下,然而家里wif ...

  8. 利用python制作拼图_利用python制作拼图小游戏的全过程

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 关注公众号:Python学习指南,回复"拼图"即可获取源码 环境搭建 安装P ...

  9. python制作的游戏要怎么运行_练习项目19:使用python制作游戏(上) 魔力Python

    你的位置:魔力Python > Python教程 > 练习项目19:使用python制作游戏(上) 练习项目19:使用python制作游戏(上) Python教程小楼一夜听春语 2年前 ( ...

最新文章

  1. 读大话数据结构之二--------算法(上)
  2. Python之迭代器和生成器
  3. aapt.exe已停止工作 r.java_【转】android错误 aapt.exe已停止工作的解决方法
  4. Android之一张类图说明AMS
  5. python掷骰子_用于掷骰子的Python程序(2人骰子游戏)
  6. 前端学习(1208):vue常用特性
  7. I/O Permission Bit Map in Task State Segment(TSS)
  8. FastDB内存数据库API
  9. vue基础知识点思维导图
  10. 人工智能与自动驾驶汽车_自动驾驶汽车中的道德AI
  11. L230 RF可靠性测试-RF指标
  12. 使用Hexo + Gitee Pages搭建个人博客
  13. 常用分析模型---5W2H分析模型
  14. ThuThesis模板中\footnote每页重新从2编号的问题解决
  15. Arun Gupta通过将HTML5与Java EE 7拥抱来提高生产力
  16. 2020web前端学习路线(附全套前端视频教程+教学大纲
  17. 企业信息化常见缩略词汇总
  18. 【我上岸了】干了两年外包的我拿到阿里offer了,在此总结一下我从外包到阿里的经验吧
  19. 法规标准-ISO 22839标准解读(2013版)
  20. 考虑阶梯式碳交易机制与电制氢的综合能源系统热点优化

热门文章

  1. 2021-12-22 AndroidR 电池信息 简单分析记录
  2. 【面试时最令职场面试官讨厌的十种行为】
  3. (3)DispatcherServlet与初始化主线
  4. 深度暗色调色效果Lr预设
  5. PHPWord在文档中插入表格
  6. Leetcode 858. 镜面反射 Python解法
  7. win32 015使用菜单和加速键
  8. linux进程管道通信缺点,Linux 进程间通信(1) -- 管道
  9. 自制p站小姐姐图片返回api.
  10. 在Ubuntu 18.04上安装man中文帮助手册的方法手记