目录

一. 效果演示

1. 原图-效果图对比

2. 看出两张图片的区别了吗?

二. 代码架构

三. 功能实现

3.1 图片处理

3.2 html 使用form表单,真心话和图片文件的布局

3.3 js 上传文件

3.4 服务端 python flask

四. 源码下载


《孟子.梁惠王下》【独乐乐不如众乐乐】

情人节就要到了,小伙伴们一起来皮一皮吧~ ,正如春晚大张伟所言:我们要做自己的气氛大王!

一. 效果演示

1. 原图-效果图对比

2. 看出两张图片的区别了吗?

将效果图放大,放大,再放大,看到隐藏得满屏的喜欢了吗?感到小惊喜有没有,我看到这张图的时候也是惊喜了好一阵子那。

《朱子语类》【知其然知其所以然】

二. 代码架构

后端:python flask 提供http服务

前端:html bootstrap 

主要技术:pillow flask 

三. 功能实现

3.1 图片处理

使用PIL图像处理库,将图片增加文字水印,代码如下:

from PIL import Image, ImageDraw, ImageFontdef handle_img(input_img, output_img, text, font_size):font = ImageFont.truetype('C:/Windows/fonts/Dengl.ttf', font_size)img_in = Image.open(input_img)img_array = img_in.load()# 创建绘制对象draw = ImageDraw.Draw(img_in)def text_generator(text):while True:for i in range(len(text)):yield text[i]text_gen = text_generator(text)# 将文本和图片合成新的图片for y in range(0, img_in.size[1], font_size):for x in range(0, img_in.size[0], font_size):# fill = img_array[x, y]# 粉色fill = (250, 150, 210)draw.text((x, y), next(text_gen), fill=fill, font=font)# 输出新的图片img_in.save(output_img)return output_img

3.2 html 使用form表单,真心话和图片文件的布局


<body><form id="form-img" method="post" action="/img" enctype="multipart/form-data" target="frame"><div class="row"><h2 style="text-align: center; color: rgb(250, 150, 210);"> 程序猿2.14情人节撒狗粮的正确姿势 </h2></div><div class="mb-3 row"><label for="text" class="col-1 form-label" style="color: rgb(250, 150, 210);">真心话</label><div class="col-3"><input class="form-control" id="text" name="text" value="女神,我喜欢你!"></div></div><div class="mb-3 row"><label for="font_size" class="col-1 form-label" style="color: rgb(250, 150, 210);">字体像素</label><div class="col-3"><input class="form-control" id="font_size" name="font_size" value="6"></div></div><div class="mb-3 row"><label for="input_img" class="col-1 form-label" style="color: rgb(250, 150, 210);">请上传图片</label><div class="col-3"><input class="form-control" id="input_img" name="input_img" type="file"></div></div><div class="mb-3 row"><label class="col-1 form-label"></label><div class="col-3"><button id="btn-submit" class="btn btn-primary"style="color: rgb(250, 150, 210);">合成图片</button></div></div></form><iframe src="" frameborder="3" name="frame" width="100%" height="100%"></iframe>
</body>

3.3 js 上传文件

$(document).ready(function () {$("#btn-submit").click(function () {form_data = new FormData($('#form-img')[0]);// alert(form_data.get("text"));$.ajax({// 这三个参数未生效// type: "post",// url: "/img",// contentType: "multipart/form-data",data: form_data,async: false,//成功返回触发的方法success: function () {alert("合成图片成功!")},//请求失败触发的方法error: function () {alert("合成图片失败!")}})});});

3.4 服务端 python flask

@app.route('/img', methods=['POST'])
def img():# 输出路径output_img_filename = ""static_path = "static/img/"# 获取form数据text = request.form.get('text')font_size = int(request.form.get('font_size'))# 解析文件域input_img = request.files.get('input_img')if input_img:# 输入图片名input_img_filename = static_path + input_img.filename# 输出图片名output_img_filename = input_img_filename.replace(".", "_out.")# 保存文件内容input_img.save(input_img_filename)# 合成文件path = handle_img(input_img_filename,output_img_filename, text, font_size)# res = {"out": output_img_filename}res = "<img src=http://localhost:88/%s>" % output_img_filenamereturn res# 主程序在这里
if __name__ == "__main__":# 开启 flask 服务app.run(host='0.0.0.0', port=88)

四. 源码下载

赠人玫瑰,手有余香

https://download.csdn.net/download/lildkdkdkjf/80336562

【214情人节】低调奢华有内涵的python程序猿撒狗粮的正确姿势(附源码)相关推荐

  1. python源码提取_Python|第一个python程序(获取音乐下载地址,附源码)

    至少我们曾经在一起过. 来自:一言 软件截图 软件说明: 刚刚开始接触python,做出一个这样的软件,很low.附上源码, 希望大佬可以指点指点,正在琢磨怎么把音乐下载下来... 软件源码 impo ...

  2. 新手程序猿编程实战项目推荐【附源码下载】

    为你精选 ! 知识更新那么快,跟随不上怎么办? 碎片信息那么多,选择恐惧怎么办? 别担心,我用心挑选了几个实战项目. 长期推送干货.职场心得,让你收获满满. 话休絮烦,点击关注,长期推送编程干货! 仿 ...

  3. 新手程序猿编程实战项目推荐「附源码下载」

    知识更新那么快,跟随不上怎么办?碎片信息那么多,选择恐惧怎么办?别担心,我用心挑选了几个实战项目.长期推送干货.职场心得,让你收获满满. 复制代码 仿今日头条客户端 小白学习编程,最简单的就是手撸一个 ...

  4. python程序员专用壁纸_程序员炫技必备:用Python生成马赛克画!(文末附源码)...

    原标题:程序员炫技必备:用Python生成马赛克画!(文末附源码) 源 | Python与数据分析文 | 强哥 大家知道马赛克画是什么吗?不是动作片里的马赛克哦~~ 马赛克画是一张由小图拼成的大图,本 ...

  5. python撩人的代码,老师教已毕业的学生,用Python代码每天不定时撩女友,附源码文件...

    原本就是学生会主席,在学校如此优秀的他,毕业参加工作,依然展现出好强的一面. 每天认真的工作,即使在工作之余也要用来给自己充电,所以难免会忽略女友,不够关心,免不了发脾气,甚至是争吵. 有一天,曾经大 ...

  6. Python开发实战案例之网络爬虫(附源码)-张子良-专题视频课程

    Python开发实战案例之网络爬虫(附源码)-35人已学习 课程介绍         课程特色: 特色1:案例驱动-围绕两大完整的Python网络爬虫实战开发案例:IT电子书下载网络爬虫和股票交易数据 ...

  7. Python毕设-【课堂人脸签到系统】附源码课件/Python练手项目/Python毕业设计

    Python毕设-[课堂人脸签到系统]附源码课件/允许白嫖 文章目录 Python毕设-[课堂人脸签到系统]附源码课件/允许白嫖 系统简介 一.本课题拟解决的问题 二.系统技术栈 三.开发工具 四.数 ...

  8. 微信小程序UI自动化实践:python+minium+PO模式(超详细教程附源码供下载)

    文章目录 前言 一.minium介绍 二.安装环境 1. 安装minium doc 2. 安装minium 3. 启动小程序 三.准备知识 1. 启动 2. 配置 3. 命令行运行 4. 元素定位 5 ...

  9. python自动下载安装软件_30行Python代码从百度自动下载图片(内附源码和exe程序)...

    只需要30行代码就可以从百度自动下载图片 大家好,我是行哥,一个专门教小学生撸Python的编程老师(小学生都能学会的编程) 这里行哥想问大家三个问题 : - 你还在为批量下载表情包发愁吗? - 你还 ...

最新文章

  1. 博客域名改为http://bobli.cnblogs.com
  2. [BUUCTF-pwn]——hgame2018_flag_server
  3. 【数学基础】拉格朗日对偶
  4. python print中文_python:print含有中文的list
  5. 星来客机器人餐厅_在50米高空聚餐,在铁窗内吃饭,盘点全球特色餐厅,看看有多奇葩...
  6. appium学习记录1
  7. 流量劫持能有多大危害?
  8. Windows上Chrome被“毒霸网页“劫持启动页解决方式
  9. cobbler实现自动安装
  10. Kubernetes网络方案的三大类别和六个场景
  11. How to Install Jdownloader on Ubuntu
  12. python风变编程费用_风变编程的收费课程靠谱吗?
  13. 语音识别中特征提取MFCC、FBANK、语谱图特征提取
  14. 如何下载微信公众号中的音频、视频文件?
  15. android 开机动画实现,Android App启动画面实现
  16. 一文详解 Interpolator动画插值器
  17. Office-页码全为0的原因及解决方法
  18. Mac 媒体格式转换软件Permute
  19. 写学习心得,赢华为P30、漫步者音响!
  20. 什么是java集合,java集合有几类?

热门文章

  1. 群晖download station电驴下载没速度,ed2k、kad未连接
  2. 磨刀室-文本编辑器之最全文本编辑器使用比较
  3. 内存管理篇(三):Go垃圾回收之三色标记算法
  4. Linux 通配符与特殊符号
  5. lol教育网专区服务器位置,英雄联盟排位赛竟排队三小时_lol教育网区有多少人_lol教育网大区是什么...
  6. 费雷尔卓德服务器位置,LOL:各个地域地位最高的英雄,弗雷尔卓德“三分天下”...
  7. 双系统没有无线网问题
  8. 乘方负数怎么算用计算机,计算器如何算负数乘方
  9. vnc显示Linux主机用户桌面,用VNC实现Windows中显示Linux的桌面
  10. 阿里Redis最全面试全攻略,读完这个就可以和阿里面试官好好聊聊