python不下载获取远程图片的宽度和高度及文件大小的方法

2022-05-03 00:00:00 获取 宽度 文件大小

python中处理图片可以使用PIL库,PIL全称Python Imaging Library,就是python图形处理库的意思。在PIL中,可以使用Image.open来打开一个图片文件,但是笔者试了下,不能打开url地址的图片。如果要先把图片下载下来,存储到磁盘上,才能进行操作,那也太麻烦了。有没什么办法可以直接打开url地址的图片呢?
笔者提供一个方法:下载图片还是必须的,只是不存储到磁盘上,而是存储到内存里,这样就不会在磁盘上产生一堆的临时图片了。代码如下:

"""
作者:皮蛋编程(https://www.pidancode.com)
创建日期:2022/3/25
功能描述:python不下载获取远程图片的宽度和高度及文件大小的方法
"""
from io import BytesIO
from PIL import Image
import urllib.request
url = 'https://www.pidancode.com/static/project/img/logo-black.png'
file = urllib.request.urlopen(url)
tmpIm = BytesIO(file.read())
im = Image.open(tmpIm)
print(im.format, im.size, im.mode)

主要是使用io库的方法,将内容存放到内存,而后用Image.open方法打开这个文件,就能进行图片的操作了。

相关文章