gpt4 book ai didi

java - ImageMagick:转换管道图像

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:57 32 4
gpt4 key购买 nike

我正在尝试使用 im4java 将输入流中的图像转换为输出流。从文档来看,它看起来像是将 inputProvider 设置为输入并指定输出流应该通过管道传输转换后的图像,但我得到:

Failed to convert image: more argument images then placeholders

这是我的功能:

public static InputStream convert(InputStream imageStream){
try {
// Set up the im4java properties. See {@link im4java}
IMOperation op = new IMOperation();
op.scale(1000);
op.compress("Zip");
ConvertCmd convert = new ConvertCmd();

convert.setSearchPath(imLocation);

logger.debug("Imagemagick located at: " + convert.getSearchPath());

InputStream is = imageStream;
ByteArrayOutputStream os = new ByteArrayOutputStream();
Pipe pipeIn = new Pipe (is, null);
Pipe pipeOut = new Pipe(null, os);

convert.setInputProvider(pipeIn);
convert.setOutputConsumer(pipeOut);
convert.run(op, "-", "pdf:-");
is.close();
os.close();

pipeOut.consumeOutput(is);
return is;
}catch(Exception e){
logger.debug("Failed to convert image: " + e.getMessage());
}
return null;
}

谢谢!

最佳答案

解决了,将其发布在这里供后代使用。

public static InputStream convert(String path, InputStream imageStream){
try {
IMOperation op = new IMOperation();
op.compress("Zip"); //order matters here, make sure colorspace is the first arg set

InputStream is = imageStream;
Pipe pipeIn = new Pipe (is, null);
ByteArrayOutputStream os = new ByteArrayOutputStream();
Pipe pipeOut = new Pipe(null, os);
ConvertCmd convert = new ConvertCmd();

convert.setSearchPath(imLocation);

convert.setInputProvider(pipeIn);
convert.setOutputConsumer(pipeOut);

op.addImage("-");
op.addImage("pdf:-");
// execute the operation
final long startTime = System.nanoTime();
convert.run(op);
final long endTime = System.nanoTime();
logger.debug("Compressed");
logger.debug("done converting " + path);
final long elapsedTimeInMs = (endTime - startTime) / 1000000;
logger.debug("took " + elapsedTimeInMs);

return new ByteArrayInputStream(os.toByteArray());
}catch(Exception e){
logger.debug("Failed to convert image: " + e.getMessage());
}
return null;
}

关于java - ImageMagick:转换管道图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289518/

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