FreeBSD下如何使GraphicsMagick支持中文字体?
脚本之家
1、安装:
pkg install GraphicsMagick
2、查看编译参数:
重点看红字部分,这部分决定了windows字体的存放路径,如果系统中没有这个路径,就mkdir一个。
注意:FreeBSD10.3更改了这个默认路径,以前在/usr/local/lib/X11下面,现在改到/usr/local/share里面,更为合理一些。
# gm -version GraphicsMagick 1.3.23 2015-11-07 Q16 http://www.GraphicsMagick.org/ Copyright (C) 2002-2015 GraphicsMagick Group. Additional copyrights and licenses apply to this software. See http://www.GraphicsMagick.org/www/Copyright.html for details. Feature Support: Native Thread Safe yes Large Files (> 32 bit) yes Large Memory (> 32 bit) yes BZIP yes DPS no FlashPix no FreeType yes Ghostscript (Library) no JBIG yes JPEG-2000 yes JPEG yes Little CMS yes Loadable Modules no OpenMP yes (201107) PNG yes TIFF yes TRIO no UMEM no WebP yes WMF yes X11 yes XML yes ZLIB yes Host type: amd64-portbld-freebsd10.1 Configured using the command: ./configure '--enable-shared' '--enable-static' '--with-windows-font-dir=/usr/local/share/fonts/webfonts' '--without-perl' '--without-dps' '--without-fpx' '--with-threads' '--enable-onmp' '--disable-openmp-slow' '--with-quantum-depth=16' '--with-webp' '--with-wmf' '--with-x' '--with-xml' '--x-libraries=/usr/local/lib' '--x-includes=/usr/local/include' '--prefix=/usr/cal' '--localstatedir=/var' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd10.1' 'build_alias=amd64-portbld-freebsd10.1' 'CC=gcc48' 'CFLAGS=-O2 -pip -isystem /usr/local/include -fstack-protector -Wl,-rpath=/usr/local/lib/gcc48 -fno-strict-aliasing' 'LDFLAGS= -L/usr/local/lib -fstack-protector -Wl,-rpath=/usr/local/lib/gcc48 -L/usr/lal/lib/gcc48' 'LIBS=' 'CPPFLAGS=-isystem /usr/local/include' 'CPP=cpp48' 'CXX=c++' 'CXXFLAGS=-O2 -pipe -isystem /usr/local/include -fstack-protector -Wl,-rpath=/usr/local/lib/gcc48 -fno-rict-aliasing -isystem /usr/local/include -Wl,-rpath=/usr/local/lib/gcc48' Final Build Parameters: CC = gcc48 -std=gnu99 CFLAGS = -fopenmp -O2 -pipe -isystem /usr/local/include -fstack-protector -Wl,-rpath=/usr/local/lib/gcc48 -fno-strict-aliasing -Wall -D_THREAD_SAFE CPPFLAGS = -isystem /usr/local/include -I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include/libxml2 CXX = c++ CXXFLAGS = -O2 -pipe -isystem /usr/local/include -fstack-protector -Wl,-rpath=/usr/local/lib/gcc48 -fno-strict-aliasing -isystem /usr/local/include -Wl,-rpath=/usr/local/lib/gcc48 -D_TEAD_SAFE LDFLAGS = -L/usr/local/lib -fstack-protector -Wl,-rpath=/usr/local/lib/gcc48 -L/usr/local/lib/gcc48 -L/usr/local/lib LIBS = -ljbig -lwebp -llcms2 -ltiff -lfreetype -ljasper -ljpeg -lpng16 -lwmflite -lXext -lX11 -llzma -lbz2 -lxml2 -lz -lm -lgomp -lpthread
3、上传中文字体,直接在c:\windows\fonts目录里找就可以,至少上传两个,一个英文字体,一个中文字体,可以是arial.ttf和simsun.ttf等sim系列,当然你也可以上传多个。
4、编辑字体配置文件,在最后添加字体信息,arial等英文字体默认都在,只添加上传的中文字体即可,每个字体文件都需要添加一小节:
/usr/local/lib/GraphicsMagick/config # vi type-windows.mgk
name="simli" fullname="simli" family="simli" weight="400" style="normal" stretch="normal" glyphs="/usr/local/share/fonts/webfonts/simli.ttf" />