You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Pixabay API下载的JPG图片无法在Windows照片查看器打开

解决Pixabay API下载图片后格式不支持的问题

我一眼就看出问题所在啦——你代码里用的pageURL是图片在Pixabay官网的网页链接,不是图片文件的直接下载地址!你把网页内容存成了.jpg后缀,Windows照片查看器当然识别不了,因为这根本不是真正的图片文件。

问题代码分析

看你这段代码:

import urllib.request
import python_pixabay
pix = python_pixabay.Pixabay('4119664-75cc2144f4a944b21e461e646')
# default image search
img_search = pix.image_search()
cis = pix.image_search()
#url to the original image
u = cis['hits'][1]['pageURL']  # 这里错了!pageURL是网页链接,不是图片链接
urllib.request.urlretrieve(u, "local-filename.jpg")

pageURL指向的是Pixabay上展示该图片的页面,下载下来的是HTML网页内容,不是JPG图片,所以系统会提示格式不支持。

修正方案

Pixabay API的返回结果里,有专门的图片文件链接字段,比如:

  • largeImageURL:高清原图的直接链接
  • webformatURL:适合网页展示的中等尺寸图片链接

把代码里的pageURL替换成这些字段就行,修改后的代码如下:

import urllib.request
import python_pixabay

# 初始化Pixabay客户端
pix = python_pixabay.Pixabay('4119664-75cc2144f4a944b21e461e646')
# 执行图片搜索
img_search = pix.image_search()
# 获取第二张图片的高清原图链接(注意索引从0开始,[1]是第二张)
image_url = img_search['hits'][1]['largeImageURL']
# 下载图片到本地
urllib.request.urlretrieve(image_url, "local-filename.jpg")

额外提示

  • 下载前可以先打印image_url看看,应该是类似https://cdn.pixabay.com/photo/xxxx/yyyy.jpg这种直接指向图片文件的链接
  • 如果还是有问题,可以检查下载后的文件大小:网页文件通常只有几KB,而图片文件至少几十KB以上

内容的提问来源于stack exchange,提问作者Almuntasir Abir

火山引擎 最新活动