python生成html页面 文件夹图片_文件夹里的所有图片生成一个html页,如何把图片的相对路径写入到html文件中...

本帖最后由 zcg1123 于 2017-7-15 12:03 编辑

原本的BAT文件是:批处理将一个文件夹里的所有图片生成一个html页。

我把桌面上面的图片文件夹移动到E盘,打开“图片.html”文件就不显示图片了,也不能打开链接。

只因为批处理生成的HTML文件是绝对路径,把HTML文件中代码路径修改为a href="图片01.jpg",Img Src="图片01.jpg"这样的相对路径,就可以显示和打开链接了,

经常要把此文件夹发给公司其它同事,每个人放的位置不一样,打开就是一片空白。

每次增加或修改图片,我只能每生成一次HTML文件,就要打开HTML文件手动去修改里面的链接路径,实在太麻烦。

怎么修改BAT批处理文件,让生成的HTML文件中的路径直接是这样的相对路径?

下面是代码:批处理将一个文件夹里的所有图片生成一个html页代码:

——————————————————————————————————————————————————————

@echo off&SetLocal EnableDelayedExpansion

For /f "delims=" %%i in ('dir/b/on') do (Set a=%%~pi

Set a=!a:\= !)

For %%i in (%a%) do Set b=%%i

::获取文件夹名

Set n=0

(

Echo ^

Echo ^

Echo %b%

Echo ^

Echo ^

For /r %%i in (*.jpg *.bmp *.gif *.png) do (Echo ^ ^

Set n=1)

::将当前文件夹中所有的图片地址写入到html文件中。

Echo ^

Echo ^

)>"%b%.html"

If %n%==0 Msg * "当前文件夹中没有图片" & del %b%.html

If %n%==1 Start "" "%b%.html"

————————————————————————————————————————————————

上面是BAT批处理文件源代码,

桌面上“图片”文件夹放了4张图片,BAT文件也在该目录下,执行BAT文件,

生成的html文件代码如下:

————————————————————————————————————————————————

图片

————————————————————————————————————————————————————————————————————

上面的HTML代码不是我想要的,我想要的是如下相对路径的代码:

————————————————————————————————————————————————————————————————————

图片

————————————————————————————————————————————————————————————————————

原本的BAT文件是:批处理将一个文件夹里的所有图片生成一个html页。

我把桌面上面的图片文件夹移动到E盘,打开“图片.html”文件就不显示图片了,也不能打开链接。

只因为批处理生成的HTML文件是绝对路径,把HTML文件中代码路径修改为a href="图片01.jpg",Img Src="图片01.jpg"这样的相对路径,就可以显示和打开链接了,

经常要把此文件夹发给公司其它同事,每个人放的位置不一样,打开就是一片空白。

每次增加或修改图片,我只能每生成一次HTML文件,就要打开HTML文件手动去修改里面的链接路径,实在太麻烦。

怎么修改BAT批处理文件,让生成的HTML文件中的路径直接是这样的相对路径?

### 回答1: 可以使用 Python 的 OpenCV 库来实现这个功能。首先,你需要安装 OpenCV: ```python pip install opencv-python-headless ``` 然后,你可以使用以下代码来读取源文件夹图片,并将 Canny 边缘检测的结果保存到目标文件夹。 ```python import os import cv2 # 设置源文件夹和目标文件夹的路径 src_folder = "path/to/src/folder" dst_folder = "path/to/dst/folder" # 遍历源文件夹的所有图片 for filename in os.listdir(src_folder): # 跳过非图片文件 if not filename.endswith(".jpg") and not filename.endswith(".png"): continue # 读取图片 img = cv2.imread(os.path.join(src_folder, filename)) # 进行 Canny 边缘检测 edges = cv2.Canny(img, 100, 200) # 保存边缘检测结果到目标文件夹 dst_path = os.path.join(dst_folder, filename) cv2.imwrite(dst_path, edges) ``` 在这段代码,我们首先使用 `os.listdir` 函数遍历源文件夹的所有文件,如果是图片(即文件名以 ".jpg" 或 ".png" 结尾)就读取并进行 Canny 边缘检测。检测完成之后,结果保存到目标文件夹. Canny 函数的两个参数是阈值, 100和200, 调整这两个值来调整检测出的边缘的效果. ### 回答2: 要实现这个功能,首先需要用Python的os模块来获取文件夹的所有图片文件名。接下来,可以使用OpenCV库的Canny函数来提取图片的边缘。最后,将提取到的边缘图像写入到另一个文件夹。 ```python import os import cv2 def extract_canny_edge(input_folder, output_folder): # 获取文件夹的所有文件名 file_names = os.listdir(input_folder) # 遍历文件夹的每个文件 for file_name in file_names: # 获取文件的完整路径 file_path = os.path.join(input_folder, file_name) # 判断文件是否为图片文件 if file_path.lower().endswith(('.png', '.jpg', '.jpeg')): # 读取图片 img = cv2.imread(file_path, 0) # 以灰度图像方式读取 # 提取图片的边缘 edges = cv2.Canny(img, 100, 200) # Canny边缘提取算法 # 生成保存的文件名 output_file_name = "canny_" + file_name # 生成保存的文件路径 output_file_path = os.path.join(output_folder, output_file_name) # 保存边缘图像 cv2.imwrite(output_file_path, edges) ``` 以上代码实现了将指定文件夹的所有图片提取Canny边缘,并将提取得到的边缘图像保存到指定的输出文件夹。可通过调用`extract_canny_edge(input_folder, output_folder)`函数来实现该功能。 ### 回答3: 使用Python提取文件夹所有图片的Canny边缘,并将其写入一个文件夹的步骤如下: 1. 导入所需的库:使用OpenCV库进行图像处理操作。 ```python import cv2 import os ``` 2. 定义函数来提取Canny边缘并保存到目标文件夹: ```python # 定义函数来提取Canny边缘并保存到目标文件夹 def extract_canny_edge(input_folder, output_folder): # 遍历输入文件夹的所有文件 for filename in os.listdir(input_folder): if filename.endswith(".jpg") or filename.endswith(".png"): # 读取图像 img_path = os.path.join(input_folder, filename) img = cv2.imread(img_path, 0) # 以灰度格式读取图像 # 提取Canny边缘 edges = cv2.Canny(img, 100, 200) # 调整阈值可以获得不同程度的边缘 # 保存提取的边缘图像到目标文件夹 output_path = os.path.join(output_folder, "edge_" + filename) cv2.imwrite(output_path, edges) ``` 3. 调用函数并指定输入文件夹和输出文件夹的路径: ```python input_folder = "输入文件夹路径" output_folder = "输出文件夹路径" extract_canny_edge(input_folder, output_folder) ``` 这样,程序将遍历输入文件夹的所有图片文件,并依次提取其的Canny边缘。然后,将每个提取的边缘图像保存到指定的输出文件夹,并在文件名前加上前缀"edge_"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值