你好,Php Gd旋轉圖像
我想旋轉中心周圍的圓形圖像,然後切斷雙方。我看到imagerotate函數,但它似乎不圍繞中心旋轉。
任何人有任何建議嗎?
謝謝。
更新:由於它是一個圓形,我想切割邊緣並保持我的圓圈的尺寸相同。
你好,Php Gd旋轉圖像
我想旋轉中心周圍的圓形圖像,然後切斷雙方。我看到imagerotate函數,但它似乎不圍繞中心旋轉。
任何人有任何建議嗎?
謝謝。
更新:由於它是一個圓形,我想切割邊緣並保持我的圓圈的尺寸相同。
documentation說它確實圍繞中心旋轉。
不幸的是,它也表示它會縮放圖像,使其仍然適合。這意味着無論你做這個功能會改變你的內部圓形圖像的大小。
你可以(相對容易)計算出多少的縮減會發生,然後預分頻將圖像上適當提前。
如果你有PHP「ImageMagick的」功能available你可以用這些代替 - 他們顯然不縮放圖像。
先調整大小然後*然後*旋轉應該產生更好的質量圖像。 – soulmerge 2009-04-23 10:10:26
我成功地面對這個問題用下面的代碼
$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
希望它能幫助。
再見
正如一個隨機的阿里納斯,PHP推出了一個更新剛剛能解決與GD imagerotate一個安全漏洞...只是認爲這是一個有趣的珍聞。 – KyleFarris 2009-04-23 13:41:33