php图片处理 - PHP水印合成中文乱码怎么解?网上教程没用
PHP中文网
PHP中文网 2017-04-11 09:09:05
0
2
347

工作原因需要用到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); }
PHP中文网
PHP中文网

认证0级讲师

reply all (2)
阿神

ob_clean();

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

    巴扎黑

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

      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!