如何从网址调整图片大小并上传?

时间:2015-07-28 13:30:05

标签: php

以下代码调整图片网址的大小。但我想将此输出上传为图片网址:

<?php
// The file
$filename = 'http://valplibrary.files.wordpress.com/2009/01/5b585d_merry-christmas-blue-style.jpg';
$percent = 0.5; // percentage of resize

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>

我该怎么做?

3 个答案:

答案 0 :(得分:1)

只需使用file_get_contents()

<?php
// The file
$filename = 'http://valplibrary.files.wordpress.com/2009/01/5b585d_merry-christmas-blue-style.jpg';
$percent = 0.5; // percentage of resize
$time = time();
$local_file = '/tmp/'.$tile.'.jpg';
$local_resized_file = '/tmp/'.$tile.'-resized.jpg';

file_put_contents($local_file, file_get_contents($filename));

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($local_file);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($local_file);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, $local_resized_file, 100);
echo file_get_contents($local_resized_file);
?>

答案 1 :(得分:1)

您可以通过以下方式调整图片大小:

imagejpeg($image_p, null, 100);

Its usage is

bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )

当您离开第二个参数null时,它会直接渲染到浏览器中。您希望将其输出保存到文件中,然后您可以使用该文件上传任何所需的文件。

答案 2 :(得分:1)

  

我想将此输出上传为图片网址

不太清楚。无论如何,不​​需要&#34;上传&#34;服务器端存在的图像。你想保存它。

您使用了file_get_contents($original_img)。现在使用file_put_contents($filepath, $resized_img)。要输出URL,只需回显其URL,具体取决于您保存文件的位置(或替换它)。

快速提示,在我的一个项目中,我使用类Nimrod007/PHP_image_resize快速调整图像大小,与平台无关。