关于im4java中文水印乱码问题讨论

我的是环境是:
OS:win7(64) 旗舰
JDK:1.7
ImageMagick:6.8.8(64)
im4java:1.4.0

op.font("宋体").gravity("southeast").pointsize(18).fill("#BCBFC8").draw("text 5,5 '中文乱码'");
这样写中文乱码

op.font("C:\\Windows\\Fonts\\simsun.ttc").gravity("southeast").pointsize(18).fill("#BCBFC8").draw("text 5,5 '中文不乱码'");
这样写中文就不乱码了

请大侠指点:这样做在其他环境是否有问题

好了上代码
先看个乱码的例子:
private static void addWatermarksByText(String srcPath, String tarPath) throws IOException, InterruptedException, IM4JavaException {
IMOperation op= new IMOperation();
op.font("宋体").gravity("southeast").pointsize(18).fill("#BCBFC8").draw("text 5,5 '中文乱码'");
imOps.addImage();
imOps.addImage();
ConvertCmd convert = new ConvertCmd(false);
// linux下不要设置此值,不然会报错
convert.setSearchPath("D:\\Program Files\\ImageMagick-6.8.8-Q8\\");
convert.run(imOps, srcPath, tarPath);
}


接下来看个不乱码的例子:
private static void addWatermarksByText(String srcPath, String tarPath) throws IOException, InterruptedException, IM4JavaException {
IMOperation op= new IMOperation();
op.font("C:\\Windows\\Fonts\\simsun.ttc").gravity("southeast").pointsize(18).fill("#BCBFC8").draw("text 5,5 '中文不乱码'");
imOps.addImage();
imOps.addImage();
ConvertCmd convert = new ConvertCmd(false);
// linux下不要设置此值,不然会报错
convert.setSearchPath("D:\\Program Files\\ImageMagick-6.8.8-Q8\\");
convert.run(imOps, srcPath, tarPath);
}

你可能感兴趣的:(java)