2
我正在使用ImageMagick的Java端口JMagick。我需要能够创建新图像并将任意文本块写入其中。文档非常差,我设法获得远远是将文本写入来自IO的图像。另外,在所有示例中,我发现它似乎是在写入新图像数据之前的第一个操作,它总是将现有图像加载到ImageInfo实例中。如何用JMagick从头创建一个图像,然后在其中写入文本?使用JMagick从头开始创建图像
这是我现在做的事:
try {
ImageInfo info = new ImageInfo();
info.setSize("512x512");
info.setUnits(ResolutionType.PixelsPerInchResolution);
info.setColorspace(ColorspaceType.RGBColorspace);
info.setBorderColor(PixelPacket.queryColorDatabase("red"));
info.setDepth(8);
BufferedImage img = new BufferedImage(512,512,BufferedImage.TYPE_4BYTE_ABGR);
byte[] imageBytes = ((DataBufferByte) img.getData().getDataBuffer()).getData();
MagickImage mimage = new MagickImage(info,imageBytes);
DrawInfo aInfo = new DrawInfo(info);
aInfo.setFill(PixelPacket.queryColorDatabase("green"));
aInfo.setUnderColor(PixelPacket.queryColorDatabase("yellow"));
aInfo.setOpacity(0);
aInfo.setPointsize(36);
aInfo.setFont("Arial");
aInfo.setTextAntialias(true);
aInfo.setText("JMagick Tutorial");
aInfo.setGeometry("+40+40");
mimage.annotateImage(aInfo);
mimage.setFileName("text.jpg");
mimage.writeImage(info);
} catch (MagickException ex) {
Logger.getLogger(LWJGL_IDOMOO_SIMPLE_TEST.class.getName()).log(Level.SEVERE, null, ex);
}
它不工作时,JVM与访问冲突崩溃,因为它可能希望从IO输入图像。
你最终解决了这个问题吗? – jarandaf 2013-09-13 19:13:01
No.I离开它。切换到C++ – 2013-09-14 10:26:48