用Python来表白,把情书写进她的照片里

news2025/2/24 5:23:16

前言

这不已经十一月了,22年马上就过完了,各位兄弟有对象了吗,现在就是缺钱还缺对象

退一步来说,有心仪的人吗啊,如果有的话,看看这篇 程序员的表白小妙招吧

请添加图片描述

实现步骤

想要实现把情书写在像素中,那么我们就需要用到pillow这个神器。

众所周知,图片是由无数个像素所组成的,把图片无限放大,就会看到一个个小方格,这就是像素。

1.准备工作

我们都知道,针对图片进行操作,就会用到Pillow这个库,因为Pillow 是第三方库,所以在使用前,我们要使用pip进行安装。

pip install Pillow

2.Pillow 介绍

安装完成后,我们先来简单介绍几个常用示例

新建及保存图片

from PIL import Image

#创建一张新的图片:mode 为RGB,size :520x520 ,color :0,100,200
img = Image.new('RGB',(520,520),(255,192,203))

# 保存图片
img.save('img.jpg')

运行代码,可以看到,在默认路径自动创建一张img.jpg图片。

请添加图片描述

来看看图片是什么样子的

请添加图片描述

粉嫩嫩的,就是它了~

重新绘制图片

源码.资料.素材点击领取即可

我们在上面生成的图片中,画两条线

python学习交流Q群:770699889 ###
from PIL import Image,ImageDraw

#创建一张新的图片
#img = Image.new('RGB',(520,520),(0,100,200))
#img.save('img.jpg')

#直接打开生成的img.jpg图片
img = Image.open('img.jpg')

#取得绘图对象,需要绘制对角线
draw = ImageDraw.Draw(img)

#绘制对角线
draw.line((0,0,img.size[0],img.size[1]),fill = 128 ,width = 2)
draw.line((0,img.size[1],img.size[0],0),fill = 128 ,width = 2)
#保存图片
img.save('img-line.jpg')

再来看看生成的图片

请添加图片描述
莫得问题

图片合并

然后我们把两张图片合并

from PIL import Image

#直接打开img.jpg图片
img = Image.open('img.jpg')

#创建一个小的图片
img_small = Image.new('RGB',(30,30),'yellow')

#把img_samll 黏贴在 img.jpg图片的 的20x20的位置
img.paste(img_small,(20,20))

#保存新生成的图片
img.save('img-paste.jpg')

看看效果如何

请添加图片描述
确认过眼神,是我要的效果~

请添加图片描述

3.实战演练

思路大致分三步

1、先创建基本的信息:文案内容,像素尺寸,字体类型,图片路径;
2、创建小图来填充内容,在创建大图状态填充好的小图内容;
3、循环遍历图片的内个像素点,把文字黏贴上去。

实现代码

python学习交流Q群:770699889 ###
from  PIL import Image,ImageDraw,ImageFont

#像素放大尺寸
img_king_size = 20

#输入内容
text = '这是xx的女神'
#设置字体
font = ImageFont.truetype('simsun.ttc',img_king_size)

#图片路径
img_path = './king.jpg'

#打开图片
img = Image.open(img_path)
img_w,img_h = img.size

#创建一个小图,用于填充字体
img_child = Image.new("RGB", (img_king_size, img_king_size))
#创建一个大图,状态填充好的小图字体
img_ans = Image.new("RGB",(img_w * img_king_size,img_h * img_king_size))

#获取单个文字的宽和高
text_w,text_h = font.getsize('中')
#文字水平居中
offset_x = (img_king_size - text_w) >> 1
#文字垂直居中
offset_y = (img_king_size - text_h) >> 1

char_index = 0
#小图用于绘制文字
draw = ImageDraw.Draw(img_child)

#循环遍历原图的每一个像素点
for x in range(img_w):
    for y in range(img_h):
        #绘制背景,让图片更好看
        draw.rectangle((0,0,img_king_size,img_king_size),fill = 'lightgray')
        #用(x,y)处的像素点的色值进行绘制字体
        draw.text((offset_x,offset_y),text[char_index],font = font,fill = img.getpixel((x,y)))
        img_ans.paste(img_child,(x * img_king_size,y * img_king_size))
        char_index = (char_index + 1) % len(text)

img_ans.save('king-letter.jpg')

我们看下效果图

请添加图片描述

生成的图片超过C站上传最大限制,所以不能上传原图,只能截个图看看效果了:

请添加图片描述

放大版的,还可以放大,我就不放到最大了。

我这里显示的字是竖的,因为我的图片是长比宽大,改成横版照片的话,字就是横的了。

大家可以自己去试试,放到最大。

今天的分享到这里就差不多结束了,

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Web-HTML基础】颜色赋值、背景图片、文本和字体相关样式、元素的显示方式display、盒子模型、部分标签自带外边距或内边距

目录 颜色赋值 背景图片 文本和字体相关样式 元素的显示方式display 盒子模型 盒子模型之content内容 盒子模型之margin外边距 盒子模型之border边框 盒子模型之padding内边距 部分标签自带外边距或内边距 综合代码实现 颜色赋值 三原色: 红绿蓝 RGB RedGreenBlue …

【2022秋招面经】——深度学习

文章目录请写出常用的损失函数,平方损失、交叉熵损失、softmax损失函数和hinge1. 0-1 损失函数2. 绝对值损失函数3. 平方损失函数4. log 对数损失函数5. 指数损失函数(exponential loss)6. Hinge 损失函数7. 感知损失(preceptron loss)函数8.…

网课查题接口系统使用教程

网课查题接口系统使用教程 本平台优点:免费查题接口搭建 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库:题库后台http://daili.jueguangzhe.cn/…

使用微服务实现多设备自动调度

在实现app自动化过程中,有时候我们需要将多个手机中的任务,按照某种规则进行调度,这时仅仅使用移动端的脚本就无法完成了,需要配合使用微服务来完成。下面就举个例子来实际说明如何使用。 需求 假设我们有100台手机做任务&#…

计算机毕业设计(附源码)python疫情下的学生出入管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

云IDE产品介绍

前言 CSDN开发云官网发布了最新产品【云IDE】产品!【云IDE】将提供一键秒级构建云开发环境,是专为开发者打造的一款低代码开发产品,云端预制了常见的开发环境,无需下载安装,一键创建项目,灵活配置代码仓和云…

【数据库05】玩转SQL的高阶特性

前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:相当硬核,黑皮书《数据库系统概念》读书笔记,讲解: 1.数据库系统的基本概念(数据…

22.10.31补卡 22CCPC桂林C题

Problem - C - Codeforces 这题题解是请教了学长之后才做出来的, 若是想看题解请看http://t.csdn.cn/unAyg 本篇文章只作为做题记录 写了一天半...感觉自己是不太适合写区域赛的题了, 还是多学学算法和数论好了 ---------------------------------------------------------…

学习笔记-NTLM中继

NTLM中继 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. NTLM hash 分为 NTLMv1 NTLMv2 NTLMv2 session 三种,NTLMv2 的强度比 NTLMv1 强了不少 ,我们在实战中,如果获得的是 …

【Android Studio学习】第一篇、制作一个拥有登录和注册功能的简易APP

目录 第一部分、前言 1、目标效果 2、准备知识 第二部分、详细步骤 1、新建Empty工程 ​2、添加资源文件 3、搭建注册界面 4、搭建登录界面 5、编写注册界面和登录界面的代码 6、设置APP初始界面 7、连接手机,编译工程 第三部分、总结 1、参考资料 2、…

基于反馈技术的宽带低噪声放大器的设计

低噪声放大器是通信、雷达、电子对抗及遥控遥测系统中的必不可少的重要部件,它位于射频接收系统的前端,主要功能是对天线接收到的微弱射频信号进行线性放大,同时抑制各种噪声干扰,提高系统的灵敏度。特别是随着通信、电子对抗、微…

基于Java+Vue+uniapp微信小程序实现餐厅校园订餐平台

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取联系🍅精彩专栏推荐订阅👇&#x1f…

springboot二手车交易系统

功能介绍 目 录 第一章 绪论 5 1.1研究背景 5 1.2平台现状分析 5 1.3系统实现的功能 5 1.4二手车交易管理信息系统的特点 6 1.5本文的组织结构 6 第二章开发技术与环境配置 7 2.1 SpringBoot框架 7 2.2Java语言简介 7 2.3 MySQL环境配置 8 2.4 MyEclipse环境配置 8 2.5 mysql数…

黑马程序员C++类和对象【5】 —— 运算符重载(蓝桥杯必备知识)万字超详解

目录 🤡加号运算符重载 🤡左移运算符重载 🤡递增运算符重载 🤡递减运算符重载 🤡赋值运算符重载 🤡关系运算符重载 🤡函数调用运算符重载(仿函数) 🤡加…

牛客竞赛每日俩题 - 动态规划1

目录 DP入门(存储之前状态以简化) DP解决最短路问题 DP入门(存储之前状态以简化) 拆分词句_牛客题霸_牛客网 思路: 方法:动态规划 状态: 子状态:前1,2,3&a…

蓝桥杯国奖一等奖,经历回顾

文章目录1. 自我介绍2. 参赛经历3. 我的一些经验4. 结语本篇内容为一位粉丝的投稿内容,希望对大家有所帮助。 1. 自我介绍 我是来自一所普通双非的大三学生,以下为主要成绩: 2022蓝桥杯Java组,全国一等奖2022高教社杯全国大学生数学建模竞赛…

windows一键部署java项目

前言 前段时间老大看我很闲...然后给我下达了一项很重要的任务:windows一键部署,需要把服务(jdk、tomcat、mysql、jar包、前端压缩包)打成一个exe应用程序,点击安装会启动所有服务,打开浏览器http://localh…

Java 程序设计报告[对接java的迭代器接口]

1:程序的功能设计与分析 -:将实现deque与stack -:采用继承与内部类来提高程序的拓展性、安全性、简洁性 -:对接到java.util.iterator中的iterator接口与iterable接口 2:程序的特点分析 -:观察到队列、栈都…

二战华为成功上岸,准备了小半年,要个27k应该也算不上很高吧~

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,华为的游戏专场又是最早开始的,就投递了&#xf…

二、肺癌检测-LUNA数据集下载和介绍

LUNA数据集是一个肺部肿瘤CT扫描结果的数据集,可用于作为肺癌检测的模型训练。 一、数据集下载 step1:登陆LUNA16官网,链接为:Home - Grand Challenge step2:点击网站左侧【download】,进入下载页面。 s…