首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像上传,在MySQL中调整存储路径大小

图像上传,在MySQL中调整存储路径大小
EN

Stack Overflow用户
提问于 2011-08-21 11:07:06
回答 2查看 1.7K关注 0票数 0

谁知道一个好的PHP教程如何上传图片,调整大小来设置尺寸,然后将图片路径存储在MySQL中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-21 18:45:19

我使用这个函数来做这件事,非常简单和容易使用。首先把这个函数放在可以调用的地方。

代码语言:javascript
复制
public function Resize_image($width = 0, $height = 0, $quality = 90, $filename_in = null, $filename_out = null)
{
    $this->Filename = $filename_in;
    $this->Extension = strtolower($this->Get_file_extension($this->Filename));

    $size = getimagesize($this->Filename);
    $ratio = $size[0] / $size[1];
    if ($ratio >= 1){
        $scale = $width / $size[0];
    } else {
        $scale = $height / $size[1];
    }
    // make sure its not smaller to begin with!
    if ($width >= $size[0] && $height >= $size[1]){
        $scale = 1;
    }

    // echo $fileext;
    switch ($this->Extension)
    {
        case "jpg":
            $im_in = imagecreatefromjpeg($this->Filename);
            $im_out = imagecreatetruecolor($size[0] * $scale, $size[1] * $scale);
            imagecopyresampled($im_out, $im_in, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
            imagejpeg($im_out, $filename_out, $quality);
        break;
        case "gif":
            $im_in = imagecreatefromgif($this->Filename);
            $im_out = imagecreatetruecolor($size[0] * $scale, $size[1] * $scale);
            imagecopyresampled($im_out, $im_in, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
            imagegif($im_out, $filename_out, $quality);
        break;
        case "png":
            $im_in = imagecreatefrompng($this->Filename);
            $im_out = imagecreatetruecolor($size[0] * $scale, $size[1] * $scale);
            imagealphablending($im_in, true); // setting alpha blending on
            imagesavealpha($im_in, true); // save alphablending setting (important)
            imagecopyresampled($im_out, $im_in, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
            imagepng($im_out, $filename_out, 9);
        break;
    }
    imagedestroy($im_out);
    imagedestroy($im_in);
}

现在,您可以像这样使用此函数来调整图像大小并将其复制到所需的目录。

代码语言:javascript
复制
Resize_image($width, $height, $quality=90, $filename_in, $filename_out)
Example..
Resize_image(150, 150, 90, "Directory".$image, "Directory".$image_without_extension."_thumb.".$image_ext); //makes file_thumb.ext
票数 0
EN

Stack Overflow用户

发布于 2011-08-21 18:40:01

您可能需要查看PHP文档:Handling file uploadsGD and Image Functions

通常,您必须:

is_uploaded_file)

  • Detect图片上传文件(使用getimagesize检查是否真的是一个图片类型的上传文件,然后使用相应的imagecreatefrom*函数创建图片资源($img)

  • Resize图片,如下所示:

imagesy($img));

  • Save = $thumb ( $width,$height);imagecreatetruecolor($width,$height);imagexs采样($thumb,$img,0,0,0,0,$width,$height,imagexs($img),图像缩略图:

imagejpeg($thumb,'file.jpg',85);imagedestroy($thumb);//可用内存imagedestroy($img);// free memory

  • 将所需信息保存到MySQL数据库

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7136064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档