欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-05-30

目录

一. 效果演示

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表单,真心话和图片文件的布局

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 = "" % output_img_filename return res# 主程序在这里if __name__ == "__main__": # 开启 flask 服务 app.run(host='0.0.0.0', port=88)

四、源码下载

赠人玫瑰,手有余香

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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。