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 に答える