IT源码网

php合并图片讲解

developer 2021年02月16日 编程语言 138 0
<?php 
 
class image{ 
 
    /** 
     * @param string $backgroundImage  背景图 
     * @param string $smallImage       小图 
     * @param int $smallX              小图相对于背景图x轴位移 
     * @param int $smallY              小图相对于背景图Y轴位移 
     * @param string $output_path      输出图片的路径 
     * @param string $output_filename  输出图片的名字 
     * @return array 
     */ 
    public function bindImages($backgroundImage='',$smallImage='',$smallX=0,$smallY=0,$output_path='',$output_filename='') 
    { 
        if(empty($backgroundImage) || empty($smallImage)) 
        { 
            return array('result'=>"fail",'msg'=>"图片参数为空"); 
        } 
        if(!file_exists($backgroundImage)) 
        { 
            return array('result'=>"fail",'msg'=>"背景图片文件不存在"); 
        } 
        if(!file_exists($smallImage)) 
        { 
            return array('result'=>"fail",'msg'=>"小图片文件不存在"); 
 
        } 
        if(empty($output_path)) 
        { 
            $output_path='./'; 
        } 
 
        //需要生成随机名称 
        if(empty($output_filename)) 
        { 
            $output_filename=md5(time()).'.png'; 
        } 
 
        //imagecreatefrompng():创建一块画布,并从 PNG 文件或 URL 地址载入一副图像 
        $image_1 = imagecreatefrompng($backgroundImage); 
        $image_2 = imagecreatefrompng($smallImage); 
 
        //分配图像资源 
        $image_3 = imageCreatetruecolor(imagesx($image_1),imagesy($image_1)); 
        $color = imagecolorallocate($image_3, 255, 255, 255); 
        imagefill($image_3, 0, 0, $color); 
        imageColorTransparent($image_3, $color); 
 
        //图像拷贝 
        imagecopyresampled($image_3,$image_1,0,0,0,0,imagesx($image_1),imagesy($image_1),imagesx($image_1),imagesy($image_1)); 
 
        imagecopymerge($image_3,$image_2, $smallX,$smallY,0,0,imagesx($image_2),imagesy($image_2), 100); 
        //将画布保存到指定的png文件 
        $result=imagepng($image_3, $output_path.$output_filename); 
 
 
        if($result==true) 
        { 
            return array('result'=>"success",'msg'=>"合成成功",'imgurl'=>$output_path.$output_filename); 
        } 
        else 
        { 
            return array('result'=>"fail",'msg'=>"合成失败"); 
        } 
    } 
} 
 
$obj=new image(); 
$t=$obj->bindImages('background.png','3.png',200,200);

 

发布评论

分享到:

IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

composer的安装讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。