PHP水印合成中文乱码怎么解?网上教程没用


工作原因需要用到PHP中的水印,我本来自己写了一个,但是发现合成之后中文出现乱码的情况,后来在网上找教程,基本都是说转码 utf-8,或者使用函数 imagettftext,可是我从一开始就是这样写的,没得改,上来请教各位大神,这个怎么解?

上代码,这是使用thinkphp框架写的

I('get.title'):接收的水印文字
I('get.headimg'):需要压缩的微信授权头像

public function watermark() {
    $bgimg = imagecreatefromstring(file_get_contents('./Public/hoax/img/2.png'));
    // 图片文字合成
    $font = './Public/hoax/microsoft_heiti.ttf';
    $black = imagecolorallocate($bgimg, 0, 0, 0);
    $fontSize = 28;
    $left = 195;
    $top = 123;
    imagettftext($bgimg, $fontSize, 0, $left, $top, $black, $font, I('get.title'));
    // 图片压缩
    $headimgPath = I('get.headimg');
    $headimg = imagecreatefromstring(file_get_contents($headimgPath));
    $headimg_percent = 0.06; // 比例缩放
    list($headimg_width, $headimg_height) = getimagesize($headimgPath);
    $headimg_new_width = $headimg_width*$headimg_percent;
    $headimg_new_height = $headimg_height*$headimg_percent;
    $headimg_src = imagecreatefromjpeg($headimgPath);
    $headimg_new = imagecreatetruecolor($headimg_new_width, $headimg_new_height);
    imagecopyresized($headimg_new, $headimg_src, 0, 0, 0, 0, $headimg_new_width, $headimg_new_height, $headimg_width, $headimg_height);
    // 缩放图与底图合成
    imagecopymerge($bgimg, $headimg_new, 50, 50, 0, 0, imagesx($headimg_new), imagesy($headimg_new), 100);
    header('Content-Type:image/jpeg');
    imagejpeg($bgimg);
    imagedestroy($bgimg);
}

ob_clean();

header('Content-Type:image/jpeg');
imagejpeg($bgimg);
imagedestroy($bgimg);


方法体第一行加上header("Content-type: text/html; charset=utf-8");



相关阅读:
chrome下disabled的input不能选中和复制, 有解决办法吗
ps切图出现细线
canvas绘制的时钟,出现多余的黑色线条是怎么回事??
关于页面同时异步请求两个js,渲染页面等待如何优化
关于 promise 的问题:请问在这个短小函数里 then 会被执行几遍?
Vue嵌套路由失效?
php中static和abstractor有啥区别?
如何删除选中的cell中对应的行?
js弹窗验证失败
关于STUN协议中属性的一点问题
vuejs 折叠面板的展开收缩动画应该怎么实现?用vue自带的过渡效果还是css3?
关于表单页面提交信息的判断
extjs3.2 panel组件能否添加focus和blur事件
如何将全局变量i变成函数的局部变量?
vue应用嵌在微信里 ,点击微信右上角的分享其中一个页面的链接 ,怎样让用户点开来就是当前页面呢?
AngularJS路由添加controller问题
PC端API和移动端API有什么不同吗?
pycharm 如何配置 python3 的开发环境?
vue中通过this.$router.push 到当前页面,只是参数不同,页面没有重新请求数据?
vue.js2.0中set和get的问题



快速导航

Copyright © 2016 phpStudy |