指定した垂直/水平で画像を反転
imageflipをPHP5.4以下で使う
公式から抜粋して一部変更と補足追加。
PHP
/**
*
* 指定した垂直/水平で画像を反転
* @param resource $image
* @param text $mode
*/
function imageflip($image, $mode)
{
// コピー先の幅
$dst_w = imagesx($image);
// コピー先の高さ
$dst_h = imagesy($image);
// コピー元のx座標
$src_x = 0;
// コピー元のy座標
$src_y = 0;
// コピー元の幅
$src_w = $dst_w;
// コピー元の高さ
$src_h = $dst_h;
// コピー先の画像リンクリソース
$dst_image = imagecreatetruecolor($dst_w, $dst_h);
switch($mode)
{
case 'IMG_FLIP_HORIZONTAL': // 垂直方向
$src_y = $dst_h -1; // コピー元のy座標=コピー先の高さ-1
$src_h = -$dst_h; // コピー元の高さ=-コピー先の高さ
break;
case 'IMG_FLIP_VERTICAL': // 水平方向
$src_x = $dst_w -1; // コピー元のx座標=コピー先の幅-1
$src_w = -$dst_w; // コピー元の幅=-コピー先の幅
break;
case 'IMG_FLIP_BOTH': // 垂直方向+水平方向
$src_x = $dst_w -1;
$src_y = $dst_h -1;
$src_w = -$dst_w;
$src_h = -$dst_h;
break;
default:
return $image;
}
// 生成
if (imagecopyresampled($dst_image, $image, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)) {
return $dst_image;
}
return $image;
}