代码之家  ›  专栏  ›  技术社区  ›  wenus

php img拇指没有调整大小

  •  0
  • wenus  · 技术社区  · 7 年前

    我的代码现在是这样的:

    $imgOrginalsize = getimagesize($file);
            $ratio = $imgOrginalsize[0] / $imgOrginalsize[1];
            $h = 160;
            $w = 160;
    
     $file_name = basename($file);
    
            switch (strtolower($imgOrginalsize['mime'])) {
                case 'image/jpeg':
                    $img = imagecreatefromjpeg($file);
                    $new = imagecreatetruecolor($w, $h);
                    imagecopyresampled($new, $img, 0, 0, 0, 0, $w, $h, $imgOrginalsize[0], $imgOrginalsize[1]);
                    imagejpeg($new, $pathToSave . $file_name, 100);
                    imagedestroy($new);
                    break;
                case 'image/png':
                    $img = imagecreatefrompng($file);
                    $new = imagecreatetruecolor($w, $h);
                    imagecopyresampled($new, $img, 0, 0, 0, 0, $w, $h, $imgOrginalsize[0], $imgOrginalsize[1]);
                    imagepng($new, $pathToSave . $file_name, 100);
                    imagedestroy($new);
                    break;
                default:
                    var_dump('error default');
                    exit();
            }
    

    现在拇指看起来不好,例如被压缩-原来的img是更高的oyu知道我的意思,我不需要在缩略图所有图片-我可以从左上角(或从原来的img中心)交叉,但我不想压缩或拉伸它:

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Eleonora Ivanova    7 年前

    试试imagecrop($img,['x'=>0,'y'=>0,'宽度'=>$大小,'高度'=>$尺寸]);

    看到了吗 http://php.net/manual/en/function.imagecrop.php

    将$size替换为所需的宽度/高度

    该链接还提供了一个如何将其居中的示例。

    推荐文章