python编程代码画画_如何⽤python编写⼀个绘制马赛克图像
的⾃写程序
Python部落(python.freelycode)组织翻译,禁⽌转载,欢迎转发。
这篇教程将会展⽰如何⽤python的图形化包“Pygame”和基础的⽂件I/O来创建⼀个⾃写程序。这个程序将可以仿照给定的图⽚来创作⼀幅马赛克画。Python是⼀种⾮常强⼤的编程语⾔。它有着许多的内建函数和可下载的软件包。在这⽚教程的末尾,你将会拥有⼀副属于你⾃⼰的蒙娜丽莎马赛克画并且将会学会如何对所有你喜欢的图⽚进⾏处理。注意,本⽂是为那些对Python,Pygame和⽂件I/O有着深刻理解的⽤户准备的。
第⼀部分 下载图⽚
1.下载《蒙娜丽莎》的图⽚。这是创建你的马赛克画的基础。注意这幅图像的尺⼨(以像素为单位)将对所要写的代码有重要影响。
·将它保存为“mona.jpg”
·图像⼤⼩设置为743像素* 1155像素。确保图⽚是以这个尺⼨保存的,否则将不会得到正确地马赛克图⽚。
第⼆部分 创建主程序
1.打开⼀个新的Python⽂件。将其命名为“makeMona.py”(可⾃定义)。
2.导⼊所需要的模块。这个程序需要Pygame模块来显⽰图⽚并且需要Math模块来执⾏你所添加的功能。
3.创建显⽰图⽚的部分。在开始处理图像以前,需要创建显⽰窗⼝以使Mona Lisa图像能够被加载并且显⽰出来
·display.set_mode((743,1155))是对于显⽰尺⼨的设置。(743,1155)代表显⽰的尺⼨;注意这要和图像的尺⼨⼀致。
4为⾃写程序创建⼀个⽬标⽂件。在“makeMona”程序中,设置要写⼊的新⽂件。
·变量mon是您对于马赛克⽂件的引⽤。声明中新⽂件叫做“mona.py”。“w”代表将会对新⽂件进⾏写⼊的操作。
5初始化新程序。现在可以开始写⼊“mona.py”⽂件。在这⾥你需要导⼊新⽂件所需的模块以及设置显⽰图⽚的尺⼨。
·mon.write表⽰现在正把下⾯的代码写⼊到新⽂件中。其中设置的显⽰尺⼨要和Mona Lisa图像的尺⼨⼀致。
6在makeMona.py中显⽰图⽚。为了确认你的图⽚已经正确地加载到你的程序中,你需要让图⽚显⽰出来。
7.绘制马赛克图⽚。现在可以将图⽚分解为⼩的⾊块来创建马赛克图像。为了得到最好的马赛克效果⽽不⾄于使得图像变形,建议将五个像素合并到⼀个⾊块内。
·mon.write("(screen,"+c+",("+str(x)+","+str(y)+",4,4)) ")这是最重要的⼀⾏,分析如下:
·(screen,"+c+", ⽤来描绘⼀个个马赛克⾊块(屏幕上显⽰出来的⼀个个⼩矩形) 然后将颜⾊"c"关联到屏幕的对应位置
_at((x,y)))。这是如何将颜⾊映射到每个像素的过程。
·("+str(x)+","+str(y)中的"x"和"y"代表⾊块的坐标。⽤str()来转换是由于程序需要按处理字符串的⽅式来处理这些坐标值(这是因为现在这些值是在三引号中,⽽所有引号中的值都是string格式)
·+",4,4)) ")中的4,4⽤来表⽰马赛克华中每个⾊块的尺⼨,“”是换⾏符,⽤来是程序切换到新的⼀⾏来写接下来的代码。
8.创建while-running循环。像所有的Pygame程序⼀样,你必须在mona.py中写⼊while-running循环。
第三部分 代码的检查和测试
1.检查代码。你的主程序makeMona.py现在已经完成了。以下是完整的代码。
2.打开新⽣成的mona.py⽂件。在你makeMona程序所保存的⽬录下,可以到新⽣成的mona.py程序⽂件。
·如果你打开这个⽂件,你将会发现⼏百⾏代码。这简直就像魔法⼀般,每⾏代码都对应着马赛克画中的⼀个独⽴⾊块。
·打开这个⽂件可能需要⼏秒钟的时间;因为它⾮常的⼤。
3.运⾏mona.py。如果之前的每⼀步都没有问题,最后⼀步只需要运⾏mona.py来看下你的《蒙娜丽莎》马赛克画。
第四部分 常见问题
1排除程序故障。在实现你⾃⼰的马赛克代码中很容易犯⼀些⼩错误。以下是⼀些会遇到的常见问题以及解决⽅法。
·新⽣成的程序⽂件在哪?主程序运⾏完毕后,新程序⽂件应当出现在主程序所在的⽬录中。
·新⽣成的程序不能执⾏。你为⾃写程序所写的所有代码都在三引号之中。检查所有引号之中的代码,确保没有丢掉冒号引号或者缩进⽅⾯的错误。
·为什么图像扭曲了?这可能是由于错误的显⽰尺⼨所造成的。确保display.set_mode()中的显⽰尺⼨在整个代码中是相同的。
译者:D
怎样写代码 自己做编程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论