如何重新调整图像大小并上传到不同大小的文件夹中?

时间:2014-07-26 17:27:47

标签: php image-resizing image-upload php-imagine

我是php新手。对于我的购物网站项目,我需要你的帮助。

在我的add_product页面中,我有产品图片选项。当我提交表单时,文件图像将在不同的文件夹中以3种不同的大小重新调整大小,如 -

30x30 for Shopping cart icon in 'Product/Image/Icon' folder.
170x300 for Base image in 'Product/Image/Base' folder.
400x300 for Large View in 'Product/Image/Thumb' folder.

我还有一个数据库表 -

ID
Product ID
thumb_name
thumb_type

提交表单后,每个文件也会生成一个唯一的新名称,并保存在上表中,如 -

ID : Auto increment
Product ID : 44545
thumb_name : new file name here
thumb_type:  Base Image

如何重新调整图像大小并上传到不同大小的文件夹并在MySQL数据库中插入文件名? Plz帮助我任何一个。

1 个答案:

答案 0 :(得分:0)

  1. 上传后只将图像库名称存储到数据库中,例如。 product1.jpg
  2. 然后在不同目录中创建具有相同名称的拇指..

    上传文件 - uploads / product1.jpg
        小拇指 - 上传/拇指/小/ product1.jpg

  3. 这是一个在php中创建拇指的功能

    function createThumb($filepath, $thumbPath, $maxwidth, $maxheight, $quality=75)
    {   
                $created=false;
                $file_name  = pathinfo($filepath);  
                $format = $file_name['extension'];
                // Get new dimensions
                $newW   = $maxwidth;
                $newH   = $maxheight;
    
                // Resample
                $thumb = imagecreatetruecolor($newW, $newH);
                $image = imagecreatefromstring(file_get_contents($filepath));
                list($width_orig, $height_orig) = getimagesize($filepath);
                imagecopyresampled($thumb, $image, 0, 0, 0, 0, $newW, $newH, $width_orig, $height_orig);
    
                // Output
                switch (strtolower($format)) {
                    case 'png':
                    imagepng($thumb, $thumbPath, 9);
                    $created=true;
                    break;
    
                    case 'gif':
                    imagegif($thumb, $thumbPath);
                    $created=true;
                    break;
    
                    default:
                    imagejpeg($thumb, $thumbPath, $quality);
                    $created=true;
                    break;
                }
                imagedestroy($image);
                imagedestroy($thumb);
                return $created;    
    }
    

    参数详情

    $filepath // uploaded file path include name eg. uploads/product1.jpg
    $thumbPath // thumbpath with name eg. uploads/thumbs/small/product1.jpg
    $maxwidth // width for the thumb eg. 100
    $maxheight// height for the thumb eg. 60
    $quality=75 // quality for the thumb image 1 - 100 ...by default it is 75