【问题标题】:image resize with array of height and width使用高度和宽度数组调整图像大小
【发布时间】:2013-09-14 00:49:52
【问题描述】:

我有一个 $h 和 $w 的数组。它只会创建move_uploaded_file($_FILES['image']['tmp_name'],$_FILES['image']['name']); 我如何使用大小数组来创建新图像?

for ($resize=1; $resize <= $units; $resize++) 
     {  
        $new =  $album_name."_".$image_name."_".$resize.".".$image_ext;
        $targetImage = imagecreatetruecolor($w, $h);
        $image = imagecreatefromstring(file_get_contents($target));         
        imagecopyresampled($targetImage,$image, 0, 0, 0, 0, $w, $h, $originalWidth, $originalHeight);
        imagejpeg($targetImage,'uploads/'.$albumName.'/'.$new,80);
     }

【问题讨论】:

    标签: php arrays image resize


    【解决方案1】:

    在您的代码中,sn-p $w$h 似乎不是数组。

    假设$w$h 是大小为$resize 且图像大小不同的数组。

    以下代码还使用 getimagesize 函数检测图像 MIME 类型并调整 JPG、PNG 和 GIF 格式的图像大小。

    for ($resize=1; $resize <= $units; $resize++) 
    {
        $size = getimagesize($target);
    
        if ($size === false)
            return false;
    
        $format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
        $icfunc = "imagecreatefrom" . $format;
        if (!function_exists($icfunc))
            return false;
    
        $new =  $album_name."_".$image_name."_".$resize.".".$image_ext;
    
        $targetImage = imagecreatetruecolor($w[$resize], $h[$resize]);
        $image = $icfunc($target);
        imagecopyresampled($targetImage,$image, 0, 0, 0, 0, $w[$resize], $h[$resize], $originalWidth, $originalHeight);
    
        switch ($size['mime']) {
            case 'image/jpg':
            case 'image/jpeg':
            case 'image/pjpeg':
                return imagejpeg($dst_r, 'uploads/'.$albumName.'/'.$new, 80);
                break;
            case 'image/png';
                return imagepng($dst_r, 'uploads/'.$albumName.'/'.$new, 2);
                break;
            case 'image/gif';
                return imagegif($dst_r, 'uploads/'.$albumName.'/'.$new);
                break;
            default:
                return;
        }
    }
    

    【讨论】:

    • 我有一个意见。这是 $w = $_POST[width] 和 $w = $_POST[height]
    • @JethroAbarquez 那么$resize是什么?
    • 我使用 $resize 来循环数组的值
    • @JethroAbarquez 你在帖子中说有一个 $h 和 $w 的数组,然后你说 $w = $_POST[width]$h = $_POST[height],所以我不太清楚你的意思
    猜你喜欢
    • 2013-04-28
    • 2017-12-08
    • 2014-04-04
    • 2016-03-30
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    相关资源
    最近更新 更多