使用imagecopyresampled调整大小并使imagejpeg无法正常工作

时间:2013-02-22 22:19:12

标签: php gd

我正在尝试使用以下PHP脚本调整图片大小。

$tn = imagecreatetruecolor(1836, 3264);
$newImage = imagecreatefromjpeg('user/354010050076877/2.jpg');
imagecopyresampled($tn, $newImage, 0, 0, 0, 0, 1836, 3264, 739, 1162);
imagejpeg($tn, 'MyFile.jpg');

图像是在MyFile.jpg上创建的,但它仍然是原始尺寸。

我也尝试用......替换第4行

file_put_contents('MyFile.jpg', $tn);

当我尝试它返回时

“警告:file_put_contents():提供的资源不是第6行/home/content/01/7258201/html/imgTools/resize.php中的有效流资源”

我需要在脚本中更改什么才能使图像调整大小正常工作?

编辑:

我在'imagecopyresampled'上混合了值的顺序,但即使在切换它们之后它也没有真正正确调整大小,所以我仍然在寻找一个很好的修复方法。 See my own answer了解更多详情。

3 个答案:

答案 0 :(得分:3)

试试这个:

$tn = imagecreatetruecolor(739, 1162); // the first line in your script

答案 1 :(得分:0)

我测试了你的脚本(那个使用imagejpeg的脚本)并且它在我的结尾工作。所以可能是你的GD库配置/设置......

答案 2 :(得分:0)

问题是我为新的宽度和高度添加了错误的值,并将它们与旧的更改混合。

imagecopyresampled($tn, $newImage, 0, 0, 0, 0, 1836, 3264, 739, 1162);

imagecopyresampled($tn, $newImage, 0, 0, 0, 0, 739, 1162, 1836, 3264);

认为它还没有完全发挥作用,因为它将旧图像调整到更大的黑色空间。

enter image description here