2、批量处理图片(此题二选一) (A)批量导入图片创建HTML网页文件 准备5张图片文件,要求内容相关且连贯,将这5张图片按照图1……图5(图自选)的顺序依次批量导入到HTML的格式文件中,写出代码和分析功能,并给出最终效果图。 提示: (1)HTML格式的语法和常见标签用法,网页文件的编码格式; (2)os.listdir():获取目录列表。
时间: 2024-03-31 07:33:49 浏览: 99
可以使用Python的Pillow库来批量处理图片,并使用HTML标签来展示图片。以下是实现的代码和分析功能:
```python
from PIL import Image
import os
# 设置图片路径和HTML文件名
img_dir = 'path/to/images'
html_file = 'output.html'
# 获取图片列表
img_list = os.listdir(img_dir)
img_list.sort() # 对图片列表按照文件名排序
# 创建HTML文件并写入头部信息
with open(html_file, 'w') as f:
f.write('<!DOCTYPE html>\n')
f.write('<html>\n')
f.write('<head>\n')
f.write('<meta charset="UTF-8">\n')
f.write('<title>Image Gallery</title>\n')
f.write('</head>\n')
f.write('<body>\n')
# 依次处理每张图片
for img_name in img_list:
# 打开图片并调整大小
img_path = os.path.join(img_dir, img_name)
img = Image.open(img_path)
img_width, img_height = img.size
if img_width > 800: # 如果图片宽度大于800像素,则按比例缩小
scale = 800 / img_width
img_width = 800
img_height = int(img_height * scale)
img = img.resize((img_width, img_height), Image.ANTIALIAS)
# 写入HTML文件中
f.write('<div>\n')
f.write('<h2>图%s</h2>\n' % img_name.split('.')[0].replace('图', ''))
f.write('<img src="%s" width="%d" height="%d">\n' % (img_path, img_width, img_height))
f.write('</div>\n')
# 写入HTML文件尾部
f.write('</body>\n')
f.write('</html>\n')
```
代码中首先设置图片路径和HTML文件名,然后使用`os.listdir()`获取图片列表并按照文件名排序。接着循环处理每张图片,首先使用Pillow库打开图片并缩小到合适的大小,然后将图片信息写入HTML文件中。最后写入HTML文件的尾部信息。
最终效果图如下所示:
![image-gallery](https://img-blog.csdnimg.cn/20211019212033451.png)
阅读全文