我可以访问一些可以像这样收集的图像:
http://www.example.com/imageGetter.php?a=0001
如果我将查询字符串a更改为0002,我会得到另一张图像。这是成千上万的图像,我试图以编程方式获取图像(通过将它们加载到浏览器中,或者将它们保存到磁盘中)。
问题:如何以编程方式存储图像?
我在这里有两种可能的方式:
1)使用.NET,加载它(作为web请求),解析结果(这是我可以保存的图像,但无法获得真实地址,因为它已收集在运行时,没有链接到我)和保存图像(这将通过.net,使用C#完成)。
2)将其复制到内存(可能在java脚本图像var中)并将其放入< img>标签。我有重复的例程来继续追加< img>标签,所以我只需要将图像加载到< img>。
所有这一切都考虑到我可以访问这些图像,我可以手动保存它们,我只是不想,我想自动保存它们,因为它们经常更换。
如果您有其他解决方法,请随时留下答案,我很乐意尝试一下!
注意:做了一个快速搜索,但没有发现任何类似的问题,但我不完全确定这不是一个骗局,因为我可能不知道具体的条款是什么我想要。如果这是一个骗局,请告诉我,我会删除这个问题。
答案 0 :(得分:0)
在PHP中。
你可以调整这样的代码来接受所有图像类型:
$remote_img = 'http://www.somwhere.com/images/image.jpg';
$img = imagecreatefromjpeg($remote_img);
$path = 'images/';
imagejpeg($img, $path);
使用php GD库来学习如何接受更多文件类型
另一种方法是使用cURL。
function save_image($img,$fullpath){
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);
if(file_exists($fullpath)){
unlink($fullpath);
}
$fp = fopen($fullpath,'x');
fwrite($fp, $rawdata);
fclose($fp);
}