python: 在线处理图片而不是下载图片

python: manipulate images online insted of downloading them

我运行这段代码比较属于两个不同社交网络的两个个人资料图像的相似性,我首先从两个网站下载图像,然后为每个用户,我给本地两个变量的图像路径,我想知道是否有任何替代方法允许我在线操作这些图像而不是下载它们,即:给出代码图像的 URL 而不是本地路径(我不想下载我本地机器上的图像,因为处理数百万图像时会占用太多 space)

from PIL import Image
import imagehash
hash0 = imagehash.average_hash(Image.open('quora_photo.jpg')) 
hash1 = imagehash.average_hash(Image.open('twitter_photo.jpeg')) 
cutoff = 5

if hash0 - hash1 < cutoff:
    print('images are similar')
else:
    print('images are not similar')

每次您在浏览器上看到图片时,您的计算机都已经下载过它。不下载图像就无法对其进行操作。

看看tempfile 模块,您可以创建临时文件以确保将来删除它们。或者按照@ArnavBorborah 所说

操作后删除文件

编辑:

看看这个方法urllib.request.urlretrieve

你可以改编他们的例子:

import urllib.request
local_filename, headers = urllib.request.urlretrieve(<image_url>)
with open(local_filename) as image:
    #do stuff

The second argument, if present, specifies the file location to copy to (if absent, the location will be a tempfile with a generated name).

如果不指定文件名参数,urllib 将创建一个临时文件