Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
TechnologyStar
Python
提交
ed7018a8
P
Python
项目概览
TechnologyStar
/
Python
与 Fork 源项目一致
Fork自
inscode / Python
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Python
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ed7018a8
编写于
7月 31, 2025
作者:
R
root
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Thu Jul 31 07:54:00 CST 2025 inscode
上级
0a575cc3
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
94 addition
and
1 deletion
+94
-1
image_metadata/metadata_0.txt
image_metadata/metadata_0.txt
+5
-0
image_metadata/metadata_1.txt
image_metadata/metadata_1.txt
+5
-0
image_metadata/metadata_2.txt
image_metadata/metadata_2.txt
+5
-0
main.py
main.py
+79
-1
未找到文件。
image_metadata/metadata_0.txt
0 → 100644
浏览文件 @
ed7018a8
URL: https://linux.do/uploads/default/original/4X/0/a/b/0abe11fa8c6477c305398de64e1ce35f981e019f.jpeg
格式: JPEG
模式: RGB
尺寸: (1440, 1080)
EXIF 数据: 无或未找到
image_metadata/metadata_1.txt
0 → 100644
浏览文件 @
ed7018a8
URL: https://linux.do/uploads/default/original/4X/2/d/d/2ddf7af927e77838f8737232778993455ed81633.jpeg
格式: JPEG
模式: RGB
尺寸: (1920, 1200)
EXIF 数据: 无或未找到
image_metadata/metadata_2.txt
0 → 100644
浏览文件 @
ed7018a8
URL: https://linux.do/uploads/default/original/4X/8/f/5/8f53435f50d3143b21b85d0a9a5f3be57d98816c.jpeg
格式: JPEG
模式: RGB
尺寸: (1280, 1707)
EXIF 数据: 无或未找到
main.py
浏览文件 @
ed7018a8
print
(
'欢迎来到 InsCode'
)
import
requests
\ No newline at end of file
from
PIL
import
Image
,
ExifTags
from
io
import
BytesIO
import
os
# 图片链接列表
image_urls
=
[
"https://linux.do/uploads/default/original/4X/0/a/b/0abe11fa8c6477c305398de64e1ce35f981e019f.jpeg"
,
"https://linux.do/uploads/default/original/4X/2/d/d/2ddf7af927e77838f8737232778993455ed81633.jpeg"
,
"https://linux.do/uploads/default/original/4X/8/f/5/8f53435f50d3143b21b85d0a9a5f3be57d98816c.jpeg"
]
# 创建一个目录来保存元数据文件(可选)
output_dir
=
"image_metadata"
os
.
makedirs
(
output_dir
,
exist_ok
=
True
)
def
get_image_metadata
(
url
,
index
):
"""
获取单个图片的元数据。
"""
try
:
print
(
f
"正在处理图片
{
index
+
1
}
:
{
url
}
"
)
# 发送HTTP GET请求获取图片内容
response
=
requests
.
get
(
url
)
response
.
raise_for_status
()
# 如果请求失败则抛出异常
# 使用BytesIO将响应内容转换为文件类对象
image_data
=
BytesIO
(
response
.
content
)
# 使用Pillow打开图片
image
=
Image
.
open
(
image_data
)
# 打印基本元数据
print
(
f
" 格式:
{
image
.
format
}
"
)
print
(
f
" 模式:
{
image
.
mode
}
"
)
print
(
f
" 尺寸:
{
image
.
size
}
"
)
# 尝试获取EXIF数据 (如果图片是JPEG且包含EXIF信息)
exif_data
=
{}
if
image
.
format
==
'JPEG'
and
hasattr
(
image
,
'_getexif'
):
exif_raw
=
image
.
_getexif
()
if
exif_raw
is
not
None
:
# 将EXIF标签代码转换为可读的名称
for
tag_id
,
value
in
exif_raw
.
items
():
tag_name
=
ExifTags
.
TAGS
.
get
(
tag_id
,
f
"Unknown_
{
tag_id
}
"
)
exif_data
[
tag_name
]
=
value
print
(
f
" EXIF 数据:
{
exif_data
}
"
)
else
:
print
(
" EXIF 数据: 未找到或为空"
)
else
:
print
(
" EXIF 数据: 不支持或非JPEG格式"
)
# 可选:将元数据保存到文件
filename_base
=
os
.
path
.
join
(
output_dir
,
f
"metadata_
{
index
}
"
)
with
open
(
f
"
{
filename_base
}
.txt"
,
"w"
,
encoding
=
'utf-8'
)
as
f
:
f
.
write
(
f
"URL:
{
url
}
\n
"
)
f
.
write
(
f
"格式:
{
image
.
format
}
\n
"
)
f
.
write
(
f
"模式:
{
image
.
mode
}
\n
"
)
f
.
write
(
f
"尺寸:
{
image
.
size
}
\n
"
)
if
exif_data
:
f
.
write
(
"EXIF 数据:
\n
"
)
for
key
,
value
in
exif_data
.
items
():
f
.
write
(
f
"
{
key
}
:
{
value
}
\n
"
)
else
:
f
.
write
(
"EXIF 数据: 无或未找到
\n
"
)
print
(
f
" 元数据已保存到
{
filename_base
}
.txt
\n
"
)
except
requests
.
exceptions
.
RequestException
as
e
:
print
(
f
" 错误: 获取图片时发生网络错误:
{
e
}
\n
"
)
except
Exception
as
e
:
print
(
f
" 错误: 处理图片时发生错误:
{
e
}
\n
"
)
# 遍历所有图片链接并获取元数据
for
i
,
url
in
enumerate
(
image_urls
):
get_image_metadata
(
url
,
i
)
print
(
"所有图片元数据获取完成。"
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录