gpt4 book ai didi

java - 使用 JMagick 从头开始​​创建图像

转载 作者:行者123 更新时间:2023-11-30 09:26:55 24 4
gpt4 key购买 nike

我正在使用名为 JMagick 的 ImageMagick Java 端口.我需要能够创建一个新图像并将任意文本 block 写入其中。文档非常糟糕,到目前为止我设法得到的是将文本写入来自 IO 的图像。此外,在所有我发现它似乎是第一个操作,在写入新图像数据之前,总是将现有图像加载到 ImageInfo 实例中。如何使用 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 的输入图像。

最佳答案

我明白现在回答可能为时已晚。在这里我写了这个简单的代码来创建一个你所问内容的场景。!

private void createEmptyImage() throws MagickException{
ImageInfo newImageiInfo=new ImageInfo();
newImageiInfo.setFileName("src\\main\\resources\\test.jpg");
newImageiInfo.setSize("512x512");
newImageiInfo.setUnits(ResolutionType.PixelsPerInchResolution);
newImageiInfo.setColorspace(ColorspaceType.RGBColorspace);
newImageiInfo.setBorderColor(PixelPacket.queryColorDatabase("red"));
newImageiInfo.setDepth(8);

MagickImage addTextImage = new MagickImage();
addTextImage.allocateImage(newImageiInfo);
addTextImage.setYResolution(480);
addTextImage.setXResolution(640);
addTextImage.writeImage(newImageiInfo);


DrawInfo aInfo = new DrawInfo(newImageiInfo);

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("+50+50");

addTextImage.annotateImage(aInfo);
addTextImage.setFileName("src\\main\\resources\\test-result.jpg");
addTextImage.writeImage(newImageiInfo);
}

关于java - 使用 JMagick 从头开始​​创建图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com