PHP 画像処理 - 画像の回転と画像反転の例、
画像の回転と反転も Web プロジェクトでは一般的な機能ですが、画像の回転は画像を特定の角度で回転すること、画像の反転は画像のコンテンツを特定の方向に移動することです。画像の反転には、独自の関数を作成して実装する必要がありますが、画像の回転は、GD ライブラリで提供される imagerotate() 関数を使用して直接実行できます。この関数のプロトタイプは次のようになります:
コードをコピーします コードは次のとおりです:
resource imagerotate(resource src_im, float angle, int bgd_color [,intignore_transpatrent])
この関数はsrc_im画像を指定角度で回転させることができ、bgd_colorは回転後の隠れない部分の色を指定します。回転の中心は画像の中心であり、回転された画像はターゲット画像に合わせて縮小されます (エッジは切り取られません)。 ignore_transpatrent が 0 以外の値に設定されている場合、透明色は無視されます (それ以外の場合は保持されます)。 JPEG形式の写真を例として、写真を回転できる関数rotate()を宣言します。コードは次のとおりです。
コードをコピーします コードは次のとおりです:
//jpeg画像形式を例として、指定された角度で画像を回転します
関数rotate($filename,$degrees){
//jpeg形式を例として画像リソースを作成します
$source = imagecreatefromjpeg($filename);
// imagerotate() 関数を使用して、指定された角度に従って回転します
$rotate = imagerotate($source, $degrees, 0);
//回転した写真を保存します
$imagejpeg($rotate,$filename);
}
//画像 brophp.jpg を 180 度回転します
回転("brophp", 180);
?>
画像の反転の角度を任意に指定することはできません。Y 軸に沿って水平に反転するか、X 軸に沿って垂直に反転するかの 2 つの方向のみを設定できます。 Y 軸に沿って反転すると、元の画像が 1 ピクセル幅で右から左 (または右から右) にコピーされ、保存された新しいリソースの高さで周期的に新しいリソースにコピーされます。は、Y 軸に沿って反転された画像です。 JPEG形式の画像を例として、Y軸に沿って反転できる画像関数turn_y()を宣言します。コードは次のとおりです。
コードをコピーします コードは次のとおりです:
関数 trun_y($filename){
$back = imagecreatefromjpeg($filename);
$width = imagex($back);
$height = imagey($back);
//Y軸に沿って反転した画像を保存するための新しい画像リソースを作成します
$new = imagecreatetruecolor($width, $height);
//y 軸に沿って反転とは、元の画像を右から左に 1 ピクセルずつ新しいリソースにコピーすることです
for($x=0 ;$x
// 画像の高さを 1 つずつ、ピクセル幅の画像を給与リソースにコピーします
Imagecopy($new, $back, $width-$x-1, 0, $x, 0, 1, $height);
}
//反転した画像を保存します
Imagejpeg($new,$filename);
Imagedestroy($back);
Imagedestroy($new);
}
trun_y("brophp.jpg")
?>
この例で宣言されたturn_y()関数には、処理される画像URLというパラメータが1つだけ必要です。この例では、turn_y() 関数を呼び出して、Y 軸に沿って画像を反転します。 X 軸に沿って反転すると、元の画像が上から下 (または下から上) に回転します。 コードは次のとおりです。