我正在制作一个使用PHP上传图片的脚本,我希望在保存之前将图片大小调整为宽度180。
我尝试使用WideImage库和 - > saveFileTO(...)但是当我在页面中包含WideImage.php时,页面变为空白!!
所以这是我的脚本,如果你可以帮助我并告诉我如何保存调整大小的版本
答案 0 :(得分:6)
您可以使用PHP GD library在上传时调整图片大小。
以下代码应该让您了解如何实现调整大小:
// Get the image info from the photo
$image_info = getimagesize($photo);
$width = $new_width = $image_info[0];
$height = $new_height = $image_info[1];
$type = $image_info[2];
// Load the image
switch ($type)
{
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($photo);
break;
case IMAGETYPE_GIF:
$image = imagecreatefromgif($photo);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($photo);
break;
default:
die('Error loading '.$photo.' - File type '.$type.' not supported');
}
// Create a new, resized image
$new_width = 180;
$new_height = $height / ($width / $new_width);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Save the new image over the top of the original photo
switch ($type)
{
case IMAGETYPE_JPEG:
imagejpeg($new_image, $photo, 100);
break;
case IMAGETYPE_GIF:
imagegif($new_image, $photo);
break;
case IMAGETYPE_PNG:
imagepng($new_image, $photo);
break;
default:
die('Error saving image: '.$photo);
}
答案 1 :(得分:1)
你可以使用我为这样一个任务编写的课程:
http://code.google.com/p/image2/source/browse/#svn/trunk/includes/classes
<?php
try
{
$image = new Image2($path_to_image);
}
catch (NotAnImageException $e)
{
printf("FILE PROVIDED IS NOT AN IMAGE, FILE PATH: %s", $path_to_image);
}
$image -> resize(array("width" => 180)) -> saveToFile($new_path); // be sure to exclude the extension
$new_file_location = $image -> getFileLocation(); // this will include the extension for future use
答案 2 :(得分:1)
您甚至不需要使用WideImage库。
在此处查看此脚本: http://bgallz.org/502/php-upload-resize-image/
首先上传图像并保存到临时图像文件。此脚本使用包含最大高度或最大宽度输入的表单运行。因此,它将根据新的宽度/高度生成新的图像文件,然后将临时图像复制到服务器上创建的新图像文件中。
您可以使用以下代码看到此内容:
// Create temporary image file.
$tmp = imagecreatetruecolor($newwidth,$newheight);
// Copy the image to one with the new width and height.
imagecopyresampled($tmp,$image,0,0,0,0,$newwidth,$newheight,$width,$height);
答案 3 :(得分:1)
不要使用任何库 检查此脚本 http://dr-wordpress.blogspot.com/2013/12/image-resizing-using-php.html 只是给出了(0-99)的图像质量 此代码将在上传时自动调整图像大小