通过PHP提交表单后调整照片大小

时间:2010-04-13 23:53:07

标签: php image resize

我正在处理一个将员工信息添加到MySQL表的表单,我需要将一张照片附加到该文件中。这是内容管理系统的一部分,用户不知道如何调整照片大小,因此我需要在上传后将图像大小调整为设定大小。如何用PHP完成这项工作?请注意,我不是要完成缩略图,只需缩放上传的图像。

4 个答案:

答案 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来获得更好的结果。