我想从URL中检索图像,调整其大小并将其保存到文件夹中。
我有这个代码从url:检索图像
$url = 'http://www.example.com/image/test.jpg';
$img = 'images/newtest.jpg';
file_put_contents($img, file_get_contents($url));
问题是,在执行file_put_contents
之前,我想调整图像的大小。如何使用php?请帮帮我,我在网上搜索了一下,但最终没有得到明确的解释。
以下是如果您的服务器上安装了imagemagik,您可以执行的操作。。。
$url = 'http://www.example.com/image/test.jpg';
$img = 'images/newtest.jpg';
file_put_contents($img, file_get_contents($url));
$image = new Imagick( $img );
$imageprops = $image->getImageGeometry();
if ($imageprops['width'] <= 200 && $imageprops['height'] <= 200) {
// don't upscale
} else {
$image->resizeImage(200,200, imagick::FILTER_LANCZOS, 0.9, true);
}
您需要查看GD图像处理库的文档,特别是imagecreatefromjpeg()
函数。
一个示例函数可以这样做:
function resize_jpeg( $original_image, $new_height, $new_width, $filename )
{
// Resize the original image
$image_resized = imagecreatetruecolor($new_width, $new_height);
$image_tmp = imagecreatefromjpeg ($original_image);
imagecopyresampled($image_resized, $image_tmp, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Output
imagejpeg($image_resized, $filename.".jpg", 100);
imagedestroy($image_resized);
}
该函数基本上创建一个具有新高度的图像参考,加载旧的图像参考然后重新采样。您也可以使用png
和gif
来代替jpeg
。请小心,因为GD无法正确地对动画GIF文件重新采样。
original_image
是要加载的映像的文件路径。new_width
和new_height
分别是目标宽度和高度的整数。filename
是目标文件名,在本例中没有.jpg
扩展名。
您可以使用GD2或ImageMagick库。