微信H5通过php gd库生成特定文字 图片 拼接扫二维码
//创建画布 $im = imagecreatetruecolor(600,590); //定义颜色 $white = imagecolorallocate($im,255,255,255); $black = imagecolorallocate($im,0,0,0); //更改画布背景色 imagefill($im,0,0,$white); //插入图片 $srcimg = imagecreatefromgif('bg.gif'); //这里只识别gif 要识别其他图像需要判断类型 载入下面↓不同图像载入函数 $srcinfo = getimagesize('img.gif'); /*print_r($srcinfo); Array ( [0] => 730 [1] => 711 [2] => 1 [3] => width="730" height="711" [bits] => 8 [channels] => 3 [mime] => image/gif ) exit;*/ imagecopy($im,$srcimg,0,0,0,0,$srcinfo[0],$srcinfo[1]); //写字 $str = 'nihao你 好 123'; imagettftext($im,20,0,65,200,$black,'font.ttf',$str); header("content-type: image/png"); imagepng($im); imagedestroy($im);
优先级是根据代码的层级顺序
imagecreatefrom 系列函数用于从文件或 URL 载入一幅图像。
载入图像
imagecreatefrom 系列函数用于从文件或 URL 载入一幅图像,成功返回图像资源,失败则返回一个空字符串。
该系列函数有:
- imagecreatefromgif():创建一块画布,并从 GIF 文件或 URL 地址载入一副图像
- imagecreatefromjpeg():创建一块画布,并从 JPEG 文件或 URL 地址载入一副图像
- imagecreatefrompng():创建一块画布,并从 PNG 文件或 URL 地址载入一副图像
- imagecreatefromwbmp():创建一块画布,并从 WBMP 文件或 URL 地址载入一副图像
- imagecreatefromstring():创建一块画布,并从字符串中的图像流新建一副图像
语法:
resource imagecreatefromgif( string filename ) resource imagecreatefromjpeg( string filename ) resource imagecreatefrompng( string filename ) resource imagecreatefromwbmp( string filename ) resource imagecreatefromstring( string image )
例子:
<? header("Content-type: image/jpeg"); //创建并载入一幅图像 $im = @imagecreatefromjpeg("images/flower_1.jpg"); //错误处理 if(!$im){ $im = imagecreatetruecolor(150, 30); $bg = imagecolorallocate($im, 255, 255, 255); $text_color = imagecolorallocate($im, 0, 0, 255); //填充背景色 imagefilledrectangle($im, 0, 0, 150, 30, $bg); //以图像方式输出错误信息 imagestring($im, 3, 5, 5, "Error loading image", $text_color); } else { //输出该图像 imagejpeg($im); } ?>
在该例子中,我们载入并输出原图。由于 PHP 对图像创建错误没有友好的错误提示,因此我们自定义了错误处理信息。
提示
对于 PHP 生成的图片,如果要直接在普通网页中显示而不是通过 header 输出,可以通过如下的方式调用:
<img src="pic.php" />
假如缩放的话 注意还要判断是加载Png还是gif还是jpg
//$filepath图片路径,$percent缩放百分比 function imagepress($filepath,$percent='0.5'){ // 图片类型 header('Content-Type: image/jpeg'); // 获得新的图片大小 list($width, $height) = getimagesize($filepath); $new_width = $width * $percent; $new_height = $height * $percent; // 重新取样 $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($filepath); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); // 输出 return imagejpeg($image_p, null, 100); }
判断类型简单 使用
$srcinfo2 = getimagesize($src2);
if($srcinfo2[‘mime’] == ‘image/jpeg’){
$srcimg2 = imagecreatefromjpeg($src2);
}else if($srcinfo2[‘mime’] == ‘image/gif’){
$srcimg2 = imagecreatefromgif($src2);
}