PHP:为什么这种图像压缩方法将我的图像旋转90度?

时间:2015-07-16 13:42:27

标签: php image image-processing

我有一个PHP图像方法来压缩和调整服务器上的图像大小,然后将它们插入到数据库中,但是所有肖像图像都变成了横向,而横向变成了肖像。造成这种情况的原因是什么?

该方法定义为:

private static function fit_image_file_to_width($file, $w, $mime = 'image/jpeg') {
    list($width, $height) = getimagesize($file);
    $newwidth = $w;
    $newheight = $w * $height / $width;

    switch ($mime) {
        case 'image/jpeg':
            $src = imagecreatefromjpeg($file);
            break;
        case 'image/png';
            $src = imagecreatefrompng($file);
            break;
        case 'image/bmp';
            $src = imagecreatefromwbmp($file);
            break;
        case 'image/gif';
            $src = imagecreatefromgif($file);
            break;
    }

    $dst = imagecreatetruecolor($newwidth, $newheight);
    imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    switch ($mime) {
        case 'image/jpeg':
            imagejpeg($dst, $file);
            break;
        case 'image/png';
            imagealphablending($dst, false);
            imagesavealpha($dst, true);
            imagepng($dst, $file);
            break;
        case 'image/bmp';
            imagewbmp($dst, $file);
            break;
        case 'image/gif';
            imagegif($dst, $file);
            break;
    }

    imagedestroy($dst);
}

我称之为:

self::fit_image_file_to_width($_FILES["file"]["tmp_name"], 1080, $_FILES["file"]["type"]);
$flag = move_uploaded_file($_FILES['file']['tmp_name'], $imageURL);

上传工作正常,只是图片方向错误。

0 个答案:

没有答案