【问题标题】:php img thumbs are not resizedphp img 拇指未调整大小
【发布时间】:2019-03-07 09:11:43
【问题描述】:

我有代码可以从原始图像表单用户中创建一个拇指。我需要拇指的核心宽度和高度,它是 160 x 160。我的问题不是完美的图片。我的意思是当用户想要添加的 img 女巫比更高时,我的缩略图看起来很糟糕并且被拉伸 - 当原始 img 高于更宽时会发生类似情况 - 然后拇指被严重压缩。我认为我必须使用函数 imagecopyresampled() 进行操作,但我认为这是一个糟糕的选择。我的问题是:怎么做才能使拇指不被压缩或拉伸并切掉它们。从原始图像的中心? 我的代码现在看起来像这样:

$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 的中心)裁剪但我不想压缩或拉伸它:

【问题讨论】:

标签: php image thumbnails


【解决方案1】:

尝试 imagecrop($img, ['x' => 0, 'y' => 0, 'width' => $size, 'height' => $size ]);

见http://php.net/manual/en/function.imagecrop.php

用你想要的宽度/高度替换 $size

该链接还有一个如何居中的示例。

【讨论】:

  • 我工作并帮助了我。我在上传之前调整原始 img 的大小也有问题。我是否也可以在仅基于 $_FILES['file']['tmp_name'] 的代码中执行此操作?
  • 要在上传之前执行此操作,我将使用 js,请查看此主题 stackoverflow.com/questions/2434458/…
猜你喜欢
  • 2013-02-03
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多