PHP保存图像文件

Mic*_*ick 25 php

可能重复:
从PHP URL保存图像

我有一个图像作为来自第三方网站拇指网站的网址链接(IE http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com)我想要做的是运行一个脚本,它使用php获取图像并将其保存在我的服务器上的目录中.这该怎么做?我会使用文件写入吗?

Tim*_*per 53

无需像其他人建议的那样创建GD资源.

$input = 'http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com';
$output = 'google.com.jpg';
file_put_contents($output, file_get_contents($input));
Run Code Online (Sandbox Code Playgroud)

注意:此解决方案仅在您设置为允许fopen访问URL时才有效.如果上述解决方案不起作用,则必须使用cURL.


Mar*_*lor 22

注意:如果可能,您应该使用接受的答案.它比我的好.

使用GD库非常容易.

它通常内置,你可能有它(用于phpinfo()检查)

$image = imagecreatefromjpeg("http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com");

imagejpeg($image, "folder/file.jpg");
Run Code Online (Sandbox Code Playgroud)

对于大多数情况,上述答案更好(更快),但使用GD,您也可以以某种形式修改它(例如裁剪).

$image = imagecreatefromjpeg("http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com");
imagecopy($image, $image, 0, 140, 0, 0, imagesx($image), imagesy($image));
imagejpeg($image, "folder/file.jpg");
Run Code Online (Sandbox Code Playgroud)

这仅适用allow_url_fopentrue (这是默认情况下)

  • 这迫使GD无缘无故地解码和编码图像.这也意味着它是*有损*,而且imagejpeg默认只使用75%的质量.要求的所有OP都是下载(逐位复制). (3认同)