如题MagickImage image;
String srcImage="d:/1.jpg";
String icon="d:/2.jpg";
ImageInfo info=new ImageInfo(srcImage);
ImageInfo info2=new ImageInfo(icon);
image=new MagickImage(info);
MagickImage iconImage=new MagickImage(info2);
//System.out.println(image.getXResolution()+" "+image.getYResolution());
MagickCanvas canvas=new MagickCanvas();
canvas.setImage(image);
DrawInfo aInfo=new DrawInfo(new ImageInfo());
// aInfo.setTile(image);
aInfo.setFill(PixelPacket.queryColorDatabase("red"));
aInfo.setOpacity(50);
aInfo.setPointsize(40);
// aInfo.setFont("fixed");
aInfo.setText(toGb("Hello,中国"));
aInfo.setTextAntialias(true);
aInfo.setGeometry("+100+200");
// image.compositeImage(3,iconImage,canvas.getWidth()/2-80,canvas.getHeight()/2-100);
image.annotateImage(aInfo);
MagickImage imageResize=image;
imageResize.setFileName("d:/1_1.jpg");
imageResize.writeImage(info); public static String toGb(String uniStr){
String gbStr = uniStr;
if(uniStr == null){
uniStr = "";
}
try{
byte[] tempByte = uniStr.getBytes();
gbStr=new String(tempByte,"ISO8859_1");
}catch(Exception ex){
}
return gbStr;
}以上是我对两个图片合成后添加了文字,但图片上面显示的是乱码。在控制台里面输出时已经显示是正确的中文,为何图片上面还是乱码呢,请哪位使用过的帮我一下。在线等
String srcImage="d:/1.jpg";
String icon="d:/2.jpg";
ImageInfo info=new ImageInfo(srcImage);
ImageInfo info2=new ImageInfo(icon);
image=new MagickImage(info);
MagickImage iconImage=new MagickImage(info2);
//System.out.println(image.getXResolution()+" "+image.getYResolution());
MagickCanvas canvas=new MagickCanvas();
canvas.setImage(image);
DrawInfo aInfo=new DrawInfo(new ImageInfo());
// aInfo.setTile(image);
aInfo.setFill(PixelPacket.queryColorDatabase("red"));
aInfo.setOpacity(50);
aInfo.setPointsize(40);
// aInfo.setFont("fixed");
aInfo.setText(toGb("Hello,中国"));
aInfo.setTextAntialias(true);
aInfo.setGeometry("+100+200");
// image.compositeImage(3,iconImage,canvas.getWidth()/2-80,canvas.getHeight()/2-100);
image.annotateImage(aInfo);
MagickImage imageResize=image;
imageResize.setFileName("d:/1_1.jpg");
imageResize.writeImage(info); public static String toGb(String uniStr){
String gbStr = uniStr;
if(uniStr == null){
uniStr = "";
}
try{
byte[] tempByte = uniStr.getBytes();
gbStr=new String(tempByte,"ISO8859_1");
}catch(Exception ex){
}
return gbStr;
}以上是我对两个图片合成后添加了文字,但图片上面显示的是乱码。在控制台里面输出时已经显示是正确的中文,为何图片上面还是乱码呢,请哪位使用过的帮我一下。在线等
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货