在Julia下载并写入图像数据

时间:2014-02-22 14:47:15

标签: download png julia

我正在使用Julia get包中的Requests函数(https://github.com/loladiro/Requests.jl)来下载文件。有些文件是PNG图像,当我将返回的对象中的数据写入文件时:

x = get("url here")
outfile = open("file.png", "w")
write(outfile, x.data)
close(outfile)

...它确实将数据写入文件,但是当我尝试将其作为图像打开时,我收到文件损坏警告。

似乎get没有将文件下载为二进制文件,因为当我使用R函数download.file()mode="wb"(写二进制)参数下载文件时,我在文件中获取不同的数据,它作为图像成功打开。

任何人都对如何正确下载PNG数据或二进制数据有一个好主意吗?

2 个答案:

答案 0 :(得分:1)

Requests包对我来说表现出奇怪的行为,其中多次get相同的网址导致不同的data长度,通常比文件短得多。无论如何,HTTPClient包似乎对我有用:

using HTTPClient
png = get("http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png")
outfile = open("file.png", "w")
write(outfile, png.body.data)
close(outfile)

(对于这种特殊情况,Julia也有便利功能download(url, filename)。)

答案 1 :(得分:0)

您可以使用downloadHTTP.jl软件包进行操作,pwd()可以将文件下载到您的本地目录

using HTTP
HTTP.download("https://www.someURL.JPG",pwd())