Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让im4java使用BuffereImage_Java_Imagemagick_Jmagick_Im4java - Fatal编程技术网

如何让im4java使用BuffereImage

如何让im4java使用BuffereImage,java,imagemagick,jmagick,im4java,Java,Imagemagick,Jmagick,Im4java,我使用1.4.0版从Java访问功能。它可以很好地处理文件之间的图像 有一节介绍如何使用缓冲图像而不是将输出写入文件,还有一个测试(TestCase13)演示如何使用缓冲图像作为输出。但是,当我使用缓冲映像运行任何操作时,我会收到一个org.im4java.core.CommandException声明:没有给定格式的ImageReader 我尝试了许多不同的方法(包括添加jai_imageio.jar以提供额外的格式),但似乎没有任何效果。显示问题的基本测试代码(基于im4java.jar的T

我使用1.4.0版从Java访问功能。它可以很好地处理文件之间的图像

有一节介绍如何使用缓冲图像而不是将输出写入文件,还有一个测试(TestCase13)演示如何使用缓冲图像作为输出。但是,当我使用缓冲映像运行任何操作时,我会收到一个
org.im4java.core.CommandException
声明:
没有给定格式的ImageReader

我尝试了许多不同的方法(包括添加
jai_imageio.jar
以提供额外的格式),但似乎没有任何效果。显示问题的基本测试代码(基于im4java.jar的TestCase13)是:

运行此操作会引发以下错误:

    org.im4java.core.CommandException: java.lang.IllegalStateException: no ImageReader for given format
    at org.im4java.core.ImageCommand.run(ImageCommand.java:219)
    at test.groovy.services.ImageManipulation.JavaBufferedImageManipulationTest.shouldWorkBufferedImageTest(JavaBufferedImageManipulationTest.java:31)

Caused by: java.lang.IllegalStateException: no ImageReader for given format
    at org.im4java.core.Stream2BufferedImage.consumeOutput(Stream2BufferedImage.java:82)
    at org.im4java.process.ProcessStarter.processOutput(ProcessStarter.java:276)
    at org.im4java.process.ProcessStarter.access$200(ProcessStarter.java:54)
    at org.im4java.process.ProcessStarter$2.call(ProcessStarter.java:433)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.lang.Thread.run(Thread.java:745)
错误发生在
convertCmd.run
行上,但是,问题似乎在于将outputConsumer设置为stream2BufferedImage。我该如何解决这个问题?im4java和BuffereImage是否存在已知错误?有比导出到临时文件然后将其读回BuffereImage更好的解决方法吗?我知道JMagick(作为im4java的替代品),但由于其他原因,我没有发现它是一个好的解决方案


提前感谢您的帮助或想法。

在本例中,我将输入源作为缓冲图像,输出也作为缓冲图像。我希望这能帮助你

public static void main(String... args) throws Exception {   
        IMOperation op = new IMOperation();
        op.addImage();                       
        op.resize(350)
        op.addImage("png:-")               
        BufferedImage images = ImageIO.read(new File("image.jpg")); 

        // set up command
        ConvertCmd convert = new ConvertCmd();
        Stream2BufferedImage s2b = new Stream2BufferedImage();
        convert.setOutputConsumer(s2b);

        // run command and extract BufferedImage from OutputConsumer
        convert.run(op,images);
        BufferedImage img = s2b.getImage();
    }

在这个例子中,我将输入源作为缓冲图像,输出也作为缓冲图像。我希望这能帮助你

public static void main(String... args) throws Exception {   
        IMOperation op = new IMOperation();
        op.addImage();                       
        op.resize(350)
        op.addImage("png:-")               
        BufferedImage images = ImageIO.read(new File("image.jpg")); 

        // set up command
        ConvertCmd convert = new ConvertCmd();
        Stream2BufferedImage s2b = new Stream2BufferedImage();
        convert.setOutputConsumer(s2b);

        // run command and extract BufferedImage from OutputConsumer
        convert.run(op,images);
        BufferedImage img = s2b.getImage();
    }