Magickwand图片处理中写中文乱码的解决方法
php对于中文处理,乱码问题是最底层,最核心的部分,包括mysql乱码部分.
MagickWand 不支持GB2312编码的文字直接写到图片上,必须先把文字转换成utf-8格式,不然就是乱码
这里是一个一段在图片上写中文字的一段代码:
<?
$black = NewPixelWand(’black’); //建立三个颜色的背景图层
$white = NewPixelWand(’white’);
$mgck_wnd=NewMagickWand();
MagickNewImage($mgck_wnd, 100, 100, $black ) ;//建立一个100*100的背景是黑色的图片
$txt_wnd = NewDrawingWand(); //绘画图层
$font_size=”12″; //字体大小
$text=”虾皮QQ:27647737″;
$text_write= mb_convert_encoding($text, “utf-8″, “gb2312″);
//转换编码,如果你的程序是 UTF-8的编码就不需要转换了
DrawSetTextEncoding($txt_wnd,”UTF-8″) ; //文字编码
DrawSetFont($txt_wnd,”C:\WINDOWS\Fonts\SIMLI.TTF”); //字体,如果路径不对,字就无法显示
DrawSetFontWeight($txt_wnd,900 );
DrawSetFillColor($txt_wnd, $white);//字体的颜色
DrawSetFontSize($txt_wnd, 15);//字体大小
DrawSetGravity($txt_wnd, MW_WestGravity);//对齐方式
DrawAnnotation($txt_wnd, 0, 0, $text_write); //写文字
MagickDrawImage($mgck_wnd, $txt_wnd); //把文字写到新建的图片上
MagickSetFormat($mgck_wnd,”gif”);
header(’Content-Type: ‘ . MagickGetMimeType($mgck_wnd));
/* Outputs $mgck_wnd’s image sequence as a BLOB (Binary Large Object) */
MagickEchoImagesBlob($mgck_wnd);
?>
04月 11th, 2008 at 4:23 pm
What was the interesting thing? Oh! That. Yeah. I should have guessed. This post is good, but not good enough.