20211202《Python程序设计》实验四 Python综合实践实验报告
作者:互联网
20211202《Python程序设计》实验四 Python综合实践实验报告
课程: 《Python程序设计》
班级: 2112
姓名: 王金烁
学号: 20211202
实验教师: 王志强
实验日期: 2022年5月24日
必修/选修: 公选课
一、实验内容
1.灵感来源:
一个是平时看视频的时候会有照片由近及远组成大图片的特效,一个是高中是刷到程序员表白时会用程序打成图片,就想试试能不能拿python做一个类似的程序。
2.主要内容:
用学校各项活动的图片拼出“Python”并打印成图片。
二、实验过程及结果
1.实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
我做的是 照片墙
2.实验过程及结果
确定文字和字体大小
引用pygame模块初始化,确定字体
渲染字体,进行锯齿化和确定颜色
获取字体的宽高
获取像素点颜色
根据像素点分类,做二维列表:黑色添加 1 ,白色添加 0 .
引用图像处理模块创建图片
初始化图片尺寸根据0,1贴图。
用os模块获取图片,用random模块随机选取,修改图片大小。
图片强保存
实验代码:
import pygame text = '233' font_size = 10 pygame.init() font = pygame.font.Font('simhei.ttf',font_size) print(font) font_text = font.render(text, True, (0, 0, 0,),(255, 255, 255)) print(font_text) height = font_text.get_height() width = font_text.get_width() print('height: ',height) print('width: ',width) print(font_text.get_at((1,1))[0]) image_row_list = [] for x in range(height): image_col_list = [] for y in range(width): if font_text.get_at((y,x))[0] != 255: image_col_list.append(1) else: image_col_list.append(0) image_row_list.append(image_col_list) for row in image_row_list: print(row) from PIL import Image width_len = len(image_row_list[0]) height_len = len(image_row_list) new_image = Image.new('RGB', (width_len * 100 , height_len * 100 ),(255,255,255)) import os import random img_size = 100 for row in range(height_len): for clo in range(width_len): if image_row_list[row][clo] == 1 : source_image = Image.open('images\\' + random.choice(os.listdir(r'images'))) source_image = source_image.resize((img_size,img_size), Image.Resampling.LANCZOS) new_image.paste(source_image,(clo * img_size, row * img_size)) print('正在生成...') new_image.save(text +'.jpg') print('保存完毕,请在当前文件项目下查找')
上传ESC服务器
3. 实验过程中遇到的问题和解决过程
问题1:无法安装pygame及pillow
解决方法:关闭汉化补丁
问题2:输出文字长宽比例失调
解决方法:查资料询问老师进行单步调试修改for循环
问题3:无法生存保存图片
解决方法:减小图片尺寸和图片大小,替换文本,替换字体
问题4:ESC服务器无法下载pygame和pillow( pip install xxxxx )
解决方法:CSDN搜索,更新pip。(CSDN yyds)
……………………
(真要做起来问题真的好多,改代码查资料头疼,不过能做完真的太好了!)
4.其他(感悟、思考等)
python结课了,但是我对于python的感受和老师的一段代码一样,“人生苦短,我用python”。
第一次接触编程还是高中时学的c++,对编程产生了兴趣,但毕竟学业为重,高二下就没有再开课。王老师带我入门,学习python,教会了我很多东西,包括很多资料,很多学习的方法,让我感到了不同语言间不同的美妙之处,而且python用起来确实非常方便。当然,王老师带我走进python的殿堂,后面的学习更多的还是要靠我们自己。老师上课常常能通过一些实例达到学习的目的,不仅学到了知识,也完成了实际操作代码,这种方法是我很喜欢的而且效果也很好。
很高兴能选了python这门课,虽然有些知识我依旧没有吃透,但是学无止境,希望我能保持对python的热情,也希望以后能与老师交流专业知识。
标签:font,Python,text,image,list,python,实验报告,20211202,row 来源: https://www.cnblogs.com/xiuqilang/p/16305638.html