微信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);
}