我正在处理一个将员工信息添加到MySQL表的表单,我需要将一张照片附加到该文件中。这是内容管理系统的一部分,用户不知道如何调整照片大小,因此我需要在上传后将图像大小调整为设定大小。如何用PHP完成这项工作?请注意,我不是要完成缩略图,只需缩放上传的图像。
答案 0 :(得分:1)
您的服务器是否安装了用于PHP的GD库? (如果没有,你能不能得到它?)
PHP具有广泛的处理图像数据的功能。
http://php.net/manual/en/book.image.php
(如果你看看上面的内容,但仍然不知道该怎么做,请告诉我,我会补充更多信息)
答案 1 :(得分:1)
你应该查看Verot的php upload class。它通过非常简单的编码处理所有图像修改选项。
示例代码:
$foo = new Upload($_FILES['form_field']);
if ($foo->uploaded) {
// save uploaded image with no changes
$foo->Process('/home/user/files/');
if ($foo->processed) {
echo 'original image copied';
} else {
echo 'error : ' . $foo->error;
}
// save uploaded image with a new name
$foo->file_new_name_body = 'foo';
$foo->Process('/home/user/files/');
if ($foo->processed) {
echo 'image renamed "foo" copied';
} else {
echo 'error : ' . $foo->error;
}
// save uploaded image with a new name,
// resized to 100px wide
$foo->file_new_name_body = 'image_resized';
$foo->image_resize = true;
$foo->image_convert = gif;
$foo->image_x = 100;
$foo->image_ratio_y = true;
$foo->Process('/home/user/files/');
if ($foo->processed) {
echo 'image renamed, resized x=100
and converted to GIF';
$foo->Clean();
} else {
echo 'error : ' . $foo->error;
}
}
答案 2 :(得分:0)
一个简单的方法是使用timthumb。它根据用户请求裁剪,缩放和调整图像大小。
答案 3 :(得分:0)
大多数PHP安装都内置了gd库扩展。人们遇到的典型问题是他们试图使用明显名称的imagecopyresized()函数(可以创建丑陋的图像),而不是使用imagecopyresampled(),这会产生更好的输出。
如果您的服务器安装了ImageMagick,通常可以通过构建一个漂亮的shell命令来驱动imagemagick来获得更好的结果。