怎么用python绘制一个小猪佩奇
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要介绍"怎么用python绘制一个小猪佩奇",在日常操作中,相信很多人在怎么用python绘制一个小猪佩奇问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用
千家信息网最后更新 2025年01月24日怎么用python绘制一个小猪佩奇
这篇文章主要介绍"怎么用python绘制一个小猪佩奇",在日常操作中,相信很多人在怎么用python绘制一个小猪佩奇问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用python绘制一个小猪佩奇"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1.利用python绘制一个小猪佩奇
turtle库是一个很好的python图形绘制库,利用它我们可以绘制各种各样的图形、小动物。这个库其实并不难,实际你怎么绘制这个图形,对应的代码,就跟着你的实际绘制图形的方向走下去,即可。
from turtle import *# 绘制鼻子def nose(x,y): penup() goto(x,y) pendown() setheading(-30) begin_fill() a=0.4 for i in range(120): if 0<=i<30 or 60<=i<90: a=a+0.08 left(3) forward(a) else: a=a-0.08 left(3) forward(a) end_fill() penup() setheading(90) forward(25) setheading(0) forward(10) pendown() pencolor(255,155,192) setheading(10) begin_fill() circle(5) color(160,82,45) end_fill() penup() setheading(0) forward(20) pendown() pencolor(255,155,192) setheading(10) begin_fill() circle(5) color(160,82,45) end_fill()# 绘制头部def head(x,y): color((255,155,192),"pink") penup() goto(x,y) setheading(0) pendown() begin_fill() setheading(180) circle(300,-30) circle(100,-60) circle(80,-100) circle(150,-20) circle(60,-95) setheading(161) circle(-300,15) penup() goto(-100,100) pendown() setheading(-30) a=0.4 for i in range(60): if 0<=i<30 or 60<=i<90: a=a+0.08 left(3) forward(a) else: a=a-0.08 left(3) forward(a) end_fill()# 绘制耳朵def ears(x,y): color((255,155,192),"pink") penup() goto(x,y) pendown() begin_fill() setheading(100) circle(-50,50) circle(-10,120) circle(-50,54) end_fill() penup() setheading(90) forward(-12) setheading(0) forward(30) pendown() begin_fill() setheading(100) circle(-50,50) circle(-10,120) circle(-50,56) end_fill()# 绘制眼睛def eyes(x,y): color((255,155,192),"white") penup() setheading(90) forward(-20) setheading(0) forward(-95) pendown() begin_fill() circle(15) end_fill() color("black") penup() setheading(90) forward(12) setheading(0) forward(-3) pendown() begin_fill() circle(3) end_fill() color((255,155,192),"white") penup() setheading(90) forward(-25) setheading(0) forward(40) pendown() begin_fill() circle(15) end_fill() color("black") penup() setheading(90) forward(12) setheading(0) forward(-3) pendown() begin_fill() circle(3) end_fill()# 绘制腮帮def cheek(x,y): color((255,155,192)) penup() goto(x,y) pendown() setheading(0) begin_fill() circle(30) end_fill()# 绘制嘴巴def mouth(x,y): color(239,69,19) penup() goto(x,y) pendown() setheading(-80) circle(30,40) circle(40,80)# 绘制身体def body(x,y): color("red",(255,99,71)) penup() goto(x,y) pendown() begin_fill() setheading(-130) circle(100,10) circle(300,30) setheading(0) forward(230) setheading(90) circle(300,30) circle(100,3) color((255,155,192),(255,100,100)) setheading(-135) circle(-80,63) circle(-150,24) end_fill()# 绘制手def hands(x,y): color((255,155,192)) penup() goto(x,y) pendown() setheading(-160) circle(300,15) penup() setheading(90) forward(15) setheading(0) forward(0) pendown() setheading(-10) circle(-20,90) penup() setheading(90) forward(30) setheading(0) forward(237) pendown() setheading(-20) circle(-300,15) penup() setheading(90) forward(20) setheading(0) forward(0) pendown() setheading(-170) circle(20,90)# 绘制脚def foot(x,y): pensize(10) color((240,128,128)) penup() goto(x,y) pendown() setheading(-90) forward(40) setheading(-180) color("black") pensize(15) forward(20) pensize(10) color((240,128,128)) penup() setheading(90) forward(40) setheading(0) forward(90) pendown() setheading(-90) forward(40) setheading(-180) color("black") pensize(15) forward(20)# 绘制尾巴def tail(x,y): pensize(4) color((255,155,192)) penup() goto(x,y) pendown() setheading(0) circle(70,20) circle(10,330) circle(70,30)# 设置画布和画笔def setting(): pensize(4) hideturtle() colormode(255) color((255,155,192),"pink") setup(840,500) speed(10)def main(): setting() # 画布和画笔设置 nose(-100,100) # 鼻子 head(-69,167) # 头 ears(0,160) # 耳朵 eyes(0,140) # 眼睛 cheek(80,10) # 腮帮 mouth(-20,30) # 嘴巴 body(-32,-8) # 身体 hands(-56,-45) # 手 foot(2,-177) # 脚 tail(148,-155) # 尾巴 done() # 结束if __name__ == '__main__': main()
结果如下:
2.利用python给小猪佩奇换背景色
换背景色的原理:每一个图像都是由像素点构成的,我们想要替换他们的颜色,就是找到每个像素点对应的位置,然后用指定颜色,去替换它!一般证件照背景色并不是同一种蓝色像素点,无法完成像素点的定位,这就需要我们对图像进行【腐蚀】或【膨胀】,完成图片黑白话,这样白色的像素点是255,就可以很好的定位了。
import cv2import numpy as np# 读取照片img=cv2.imread('zhu.jpg')# 图像缩放img = cv2.resize(img,None,fx=0.5,fy=0.5)rows,cols,channels = img.shapeprint(rows,cols,channels)cv2.imshow('img',img)# 图片转换为灰度图hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)cv2.imshow('hsv',hsv)# 图片的二值化处理lower_blue=np.array([90,70,70])upper_blue=np.array([110,255,255])mask = cv2.inRange(hsv, lower_blue, upper_blue)#腐蚀膨胀erode=cv2.erode(mask,None,iterations=1)cv2.imshow('erode',erode)dilate=cv2.dilate(erode,None,iterations=1)cv2.imshow('dilate',dilate)#遍历替换for i in range(rows): for j in range(cols): if erode[i,j]==255: # 像素点为255表示的是白色,我们就是要将白色处的像素点,替换为红色 img[i,j]=(0,0,255)#此处替换颜色,为BGR通道cv2.imshow('res',img)# 窗口等待的命令,0表示无限等待cv2.waitKey(0)
结果如下:
3.利用python将小猪佩奇切分为九宫格
将图片切分为九宫格的原理就是:找到图片对应位置的坐标,然后进行切割。由于是九宫格,我们切分的是3*3,然后利用双层循环遍历对应位置的坐标后,进行图片切割
from PIL import Imageimport sys#将图片填充为正方形def fill_image(image): width, height = image.size #选取长和宽中较大值作为新图片的,小的地方,用图片填充为等宽等高 new_image_length = width if width > height else height #生成新图片[白底] new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white') #将之前的图粘贴在新图上,居中 if width > height:#原图宽大于高,则填充图片的竖直维度 #(x,y)二元组表示粘贴上图相对下图的起始位置 new_image.paste(image, (0, int((new_image_length - height) / 2))) else: new_image.paste(image, (int((new_image_length - width) / 2),0)) return new_image#切图def cut_image(image): width, height = image.size item_width = int(width / 3) item_height = int(height / 3) box_list = [] #双重循环,生成9张图片基于原图的位置 # 注意:图片左上角是(0,0),右下角是(width,height) for i in range(0,3): for j in range(0,3): print((j*item_width,i*item_height,(j+1)*item_width,(i+1)*item_height)) box = (j*item_width,i*item_height,(j+1)*item_width,(i+1)*item_height) box_list.append(box) image_list = [image.crop(box) for box in box_list] return image_list#保存def save_images(image_list): index = 1 for image in image_list: image.save(str(index) + '.jpg') index += 1 file_path = "zhuzhu.jpg"image = Image.open(file_path)image = fill_image(image)image_list = cut_image(image)save_images(image_list)
结果如下:
4.利用python制作小猪佩奇动态二维码
代码说明:如果我们利用的背景图是gif动态图,生成的就是动态二维码。如果利用的背景是静态图,生成的是静态二维码。
from MyQR import myqr# 生成的二维码最终在你电脑的存储位置# 当你使用了动态图作为背景,这里可以写成".gif",保存出来的就是gif动态二维码!save_name = r'C:\Users\Administrator\Desktop\fdasfa\D.gif'myqr.run( words='https://jq.qq.com/?_wv=1027&k=aKS84NJF', version=10, # 容错率 level='H', # 纠错水平,范围是L、M、Q、H,从左到右依次升高 colorized=True, # False为黑白 contrast=1.5, # 用以调节图片的对比度,1.0 表示原始图片。 brightness=1.0, # 用来调节图片的亮度。 save_name=save_name, #存储的文件名 # 背景图片的路径,你如果给的是".png/.jpg"等静态图片,最终生成的就是静态二维码! # 背景图片的路径,你如果给的是".gif"等动态图片,最终只需要保存为".gif",生成的就是动态二维码! picture=r'C:\Users\Administrator\Desktop\fdasfa\123.gif' )
到此,关于"怎么用python绘制一个小猪佩奇"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
图片
佩奇
背景
像素
动态
就是
二维
二维码
生成
位置
图形
静态
学习
九宫
图像
白色
结果
颜色
代码
原图
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全监督执法
bim数据库建议
吉林数据库安全箱现货
机场网络技术员工资一般多少
微服务会员服务数据库设计
软件开发零食
长沙软件开发价格多少
数据库组合主码外码命令
投资游戏服务器 被抓
本地git服务器
软件开发源代码归属权
甘肃惠普服务器虚拟化操作云主机
劲舞团2为什么登录不了服务器
教师信息系统无法登陆服务器
hp服务器安装centos
邮政网络安全知识测验
58同城软件开发
润和软件开发板最佳实践
网吧服务器开了没反应
智慧服务器管理
色盲能学计算机网络技术专业吗
计算机网络技术收获总结
数据库打开全是问号
软件开发合作预算
北京品牌软件开发成本价
云南师宗服务器招聘信息
让阿里云服务器运行bat脚本
大学网络安全预案
中央网络安全和信息主任
蜗牛星际网络安全吗