0

我正在使用 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);
4

1 回答 1

1

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

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

希望这可以帮助。

于 2012-04-21T18:42:38.233 回答