怎么用python绘制一个小猪佩奇
发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,这篇文章主要介绍"怎么用python绘制一个小猪佩奇",在日常操作中,相信很多人在怎么用python绘制一个小猪佩奇问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用
千家信息网最后更新 2024年10月01日怎么用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安全错误
数据库的锁怎样保障安全
数据库的悲观锁 原理
下列关于数据库技术发展趋势
软件开发工程师为谁服务
cs1.6怎么调服务器参数
软件开发学校收什么费用
数据库建表 文件
软件开发有事物是指什么
提供网络安全服务与杀毒软件
服务器产品排名
报社的软件开发
浙江新一代网络技术五星服务
数据库工程师考试考什么
关系数据库的设计关键
无法打开数据库登录失败
网络安全运营监测总结报告
暗黑2 局域网服务器
网络安全综合治理措施
网络安全探究的主要内容
软件开发包含软件测试吗
云服务器应用
wind万德数据库
最新网络安全概念龙头
杭州埃米网络技术有限公司
怀旧服服务器不能显示敌方血条
关于预防网络安全的策划书
德国奥迪大众服务器关闭
计算机网络技术全套课程代码
服务器1核1g
公共数据库好还是meta好
服务器能装画图软件吗