PHP imageaffine 图像GD库函数

  • 定义和用法

    imageaffine - 返回经过仿射变换后的图像,剪切区域可选
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 5.5.0+支持 支持
  • 语法

    imageaffine ( resource $image , array $affine [, array $clip ] )
    
    返回经过仿射变换后的图像,剪切区域可选
  • 参数

    参数 必需的 描述
    image 由图象创建函数(例如imagecreatetruecolor())返回的图象资源。
    affine 数组,其中键为 0 至 5 的数字。
    clip 数组,其中键为 "x","y","width" 和 "height"。
  • 返回值

    成功则返回仿射变换后的图像, 或者在失败时返回 FALSE.
  • 示例

    if (!function_exists('imageaffine'))
    {
    echo 'FUNCTION NOT DEFINED IN THIS VERSION OF PHP';
    exit;
    }
    
    $base_img = 'affine.png';
    
    $tgt_img1 = 'triangle1.png';
    
    $tgt_img2 = 'triangle2.png';
    
    $arr_affine = [
    [ 1, 0, 0, 1, 0, 0 ],
    [ 1, 0, 0, 1, 150, 0 ],
    [ 1.2, 0, 0, 0.6, 0, 0 ],
    [ -1.2, 0, 0, -0.6, 0, 0 ],
    [ 1, 2, 0, 1, 0, 0 ],
    [ 2, 1, 0, 1, 0, 0 ],
    [ cos(15), sin(15), -sin(15), cos(15), 0, 0 ],
    [ cos(15), -sin(15), sin(15), cos(15), 0, 0 ]
    ];
    
    $RSR_base = imagecreatetruecolor(400, 300);
    $w = imagesx($RSR_base);
    $h = imagesy($RSR_base);
    
    $arr_clip = [ 'x' => 0, 'y' => 0, 'width' => $w, 'height' => $h ];
    
    $fillcolor = imagecolorallocate($RSR_base, 0, 0, 0);
    
    imagefill($RSR_base, 10,10, $fillcolor);
    
    imagepng($RSR_base, $base_img);
    
    $drawcolor = imagecolorallocate($RSR_base, 255, 0, 0); 
    
    $triangle = [ 50, 50, 50, 150, 200, 150 ];
    $points = 3;
    
    imageantialias($RSR_base, 1);
    
    $drawtriangle = imagefilledpolygon($RSR_base, $triangle, $points, $drawcolor);
    
    imagepng($RSR_base, $tgt_img1);
    
    $select = mt_rand(0, 7);
    
    $RSRaff2 = imageaffine($RSR_base, $arr_affine[$select], $arr_clip);
    
    imagepng($RSRaff2, $tgt_img2, 9);
    
  • 相关函数

    imagewbmp() - 以 WBMP 格式将图像输出到浏览器或文件