微信公众号推送文图片封面会自动剪切,封面图片尺寸比例如果不是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);
?>
注意路径问题
芳芳造型
群发推送图文封面,生成素材上传保存永久
PHP 合并图像 imagecopymerge 函数(水印制作实例)
转载地址:http://www.5idev.com/p-php_imagecopymerge.shtml
php 修改图片大小
PHP实例————图片等比例缩放功能
两个强悍的php 图像处理类1
基本图片处理,用于完成图片缩入,水印添加,当水印图超过目标图片尺寸时,水印图能自动适应目标图片而缩小,水印图可以设置跟背景的合并度