您好,
我正在尝试围绕中心旋转圆形图像,然后切掉两侧。我看到了imagerotate函数,但它似乎没有围绕中心旋转。
有人有任何建议吗?
谢谢。
更新:因为它是一个圆圈,我想切掉边缘并保持我的圆圈尺寸相同。
答案 0 :(得分:4)
我使用以下代码成功解决了这个问题
$width_before = imagesx($img1);
$height_before = imagesy($img1);
$img1 = imagerotate($img1, $angle, $mycolor);
//but imagerotate scales, so we clip to the original size
$img2 = @imagecreatetruecolor($width_before, $height_before);
$new_width = imagesx($img1); // whese dimensions are
$new_height = imagesy($img1);// the scaled ones (by imagerotate)
imagecopyresampled(
$img2, $img1,
0, 0,
($new_width-$width_before)/2,
($new_height-$height_before)/2,
$width_before,
$height_before,
$width_before,
$height_before
);
$img1 = $img2;
// now img1 is center rotated and maintains original size
希望它有所帮助。
再见
答案 1 :(得分:3)
documentation表示 围绕中心旋转。
不幸的是,它还说它会缩放图像以使其仍然适合。这意味着无论你做什么,这个功能都会改变内部圆形图像的大小。
您可以(相对容易地)计算缩小比例,然后事先适当地预先缩放图像。
如果你有PHP“ImageMagick”函数available,你可以使用它们 - 它们显然不会缩放图像。
答案 2 :(得分:0)