200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序

python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序

时间:2019-01-30 20:55:16

相关推荐

python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序

Python部落()组织翻译,禁止转载,欢迎转发。

这篇教程将会展示如何用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("draw.rect(screen,"+c+",("+str(x)+","+str(y)+",4,4)) ")这是最重要的一行,分析如下:

·draw.rect(screen,"+c+", 用来描绘一个个马赛克色块(屏幕上显示出来的一个个小矩形) 然后将颜色"c"关联到屏幕的对应位置 str(screen.get_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()中的显示尺寸在整个代码中是相同的。

英文原文:/Make-a-Self%E2%80%90Writing-Mosaic-Program-in-Python

译者:D

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。