是否可以使用load
从远程网址Image
Images.jl
,与从本地文件加载的方式相同?
供参考:
using Images
yuss = load("mylocalimage.jpg") # Hooray
fail = load("https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2@2x.png") # Sad
答案 0 :(得分:2)
尝试在问题中使用yuss
成功来解决fail
问题:
using Images
img = mktemp() do fn,f
download("https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2@2x.png", fn)
load(fn)
end
或者不使用外部下载工具,可以使用HTTP包(这也避免了可能会混淆的do
语法):
using Images
using HTTP
t = tempname()
HTTP.download("https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2@2x.png", t)
img = load(t)
rm(t)
不可否认,使用临时文件并不是最漂亮的代码。这对Hooray来说足够了吗?
ADDITION
感谢Simon Danish,请查看更短版本的其他答案。
答案 1 :(得分:2)
julia> using FileIO
julia> download("https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2@2x.png") |> load
显然download()
默认创建一个临时文件,并将其全名作为字符串返回。基本上与@Dan Getz的答案相同,但有点简单。
我们必须与文件系统进行交互太糟糕了,但我想现在这样做了。