2024-10-02 12:32:07 发布
网友
我正在编写一个python程序,读取图像每个像素的颜色,然后用ASCII字符创建一个与该像素亮度相似的文件(使用原始像素的点表示暗,如果亮则使用“#”表示)。我意识到ASCII字符比单个像素大得多:由此产生的ASCII艺术太大,无法在普通显示器上显示
现在我想尝试应用这个过程,每10个像素只计算一个。我该怎么做?如何设置我的循环步骤=1(默认值)
实际上,range()接受3个位置参数,其中2个设置为默认值0和1。参数是:start=从哪个数字开始,stop=在哪个数字中停止,以及step=每次增加计数的数字。默认情况下,start等于0,step等于1。当你写range(number)的时候,你给你的号码指定了一个停止。所以,如果我想要每10个数字,我只要写下:
range()
start
stop
step
range(number)
range(0, 100, 10)
另一个解决方案显然是
for mul in range(width//10): do_thing(mul*10)
您可以使用range的三参数形式:
range
for i in range(0, width, 10): for j in range(0, height, 10): ...
尽管仅对1%的像素进行采样很可能会产生非常糟糕的结果。例如,您可以通过使每个输出字符取决于每个10x10像素块的平均值来改进它
实际上,
range()
接受3个位置参数,其中2个设置为默认值0和1。参数是:start
=从哪个数字开始,stop
=在哪个数字中停止,以及step
=每次增加计数的数字。默认情况下,start
等于0,step
等于1。当你写range(number)
的时候,你给你的号码指定了一个停止。所以,如果我想要每10个数字,我只要写下:另一个解决方案显然是
您可以使用
range
的三参数形式:尽管仅对1%的像素进行采样很可能会产生非常糟糕的结果。例如,您可以通过使每个输出字符取决于每个10x10像素块的平均值来改进它
相关问题 更多 >
编程相关推荐