如何在PHP中正确旋转图像?

时间:2012-04-21 18:07:02

标签: php image-processing php-gd

我正在使用imagerotate()函数将下面的图像转换为30度角。

http://postimage.org/image/b7w6dacel/

问题是每当我旋转图像并将其保存到新路径时,在新路径中图像会旋转,但它周围会有黑色,如下所示。

http://postimage.org/image/n3n1vtr9p/8501961e/

原始图像为450 * 340,旋转后,图像变为560 * 520.有谁知道我做错了什么。看看下面的源代码。感谢。

$filename =  "static\\". $sessionid . "-1.jpg";
$file= $sessionid . "-1.jpg";
$ir = imagecreatefromjpeg($filename);
$degrees = 30;
$flip=imagerotate($ir, $degrees, 0);
$rotated=imagejpeg($flip, 'c:\\xampp\\htdocs\\'. $file);

1 个答案:

答案 0 :(得分:1)

根据您旋转的程度,新图像将大于原始图像。您将需要缩放或裁剪新图像。此代码会将$oldImage扩展为$newWidth$newHeigth

$newImage = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($newImage, $oldImage, 0, 0, 0, 0, $newWidth, $newHeight, imagesx($oldImage), imagesy($oldImage));

希望这有帮助。