图集1/1

正文 1542字数 943,133阅读

微信公众号推送文图片封面会自动剪切,封面图片尺寸比例如果不是9:5会出现显示不完整,为方便不会使用图片编辑的客户能生成合适比例封面写了这个php代码功能,实现原理是在一张900*500的图片上加封面图片,就是图片水印,背景透明。
<? header("Content-type: image/png"); //原始图像 $dst = "a.png"; //实测900*500比例尺寸图片已不会出现裁剪图片边缘的问题,只需要发送多图文消息时注意标题文字是否会挡住图片内容即可。 $minx=900; $miny=500; //得到原始图片信息 $dst_im = imagecreatefrompng($dst); $dst_info = getimagesize($dst); //水印图像 $src = "b.jpg"; $src_im = imagecreatefromjpeg($src); $src_info = getimagesize($src); $nx=$src_info[0]; $ny=$src_info[1]; if($nx>$minx || $ny>$miny){ //获取大图信息 $maxx=$src_info[0];//宽 $maxy=$src_info[1];//长 $maxt=$src_info[2];//格式 $maxm=$src_info['mime'];//mime类型 //缩放判断 if(($minx/$maxx)>($miny/$maxy)){ $scale=$miny/$maxy; }else{ $scale=$minx/$maxx; } //对所求值进行取整 $minx=floor($maxx*$scale); $miny=floor($maxy*$scale); //添加小图 $minim=imagecreatetruecolor($minx,$miny); //缩放函数 imagecopyresampled($minim,$src_im,0,0,0,0,$minx,$miny,$maxx,$maxy); //imagejpeg($minim); $src_im=$minim; $nx=$minx; $ny=$miny; } //水印透明度 $alpha = 100; $nwx=($dst_info[0]-$nx)/2; $nwy=($dst_info[1]-$ny)/2; //imagealphablending($dst_im , false);//关闭混合模式,以便透明颜色能覆盖原画板 //imagefill($image , 0 , 0 , $bg);//填充 imagesavealpha($dst_im , true);//设置保存PNG时保留透明通道信息 //合并水印图片 imagecopymerge($dst_im,$src_im,$nwx,$nwy,0,0,$nx,$ny,$alpha); //输出合并后水印图片 imagepng($dst_im); imagedestroy($dst_im); imagedestroy($src_im); ?>
Run code
Cut to clipboard


    微信公众号推送文图片什么尺寸最佳?