Java 从ImageMagick(JMagick)馈送tesseract(Tesser4j)

Java 从ImageMagick(JMagick)馈送tesseract(Tesser4j),java,imagemagick,tesseract,jmagick,tess4j,Java,Imagemagick,Tesseract,Jmagick,Tess4j,我正在尝试创建一个Java程序,该程序将OCR多种格式的图像。图像不能直接从文件中读取,因为它们的字节将通过网络发送 我目前能够使用ImageIO读取图像像素的原始字节。但是,我希望支持ImageMagick支持的所有格式,因此使用JMagick读取图像,然后将原始字节提供给Tess4J。我不知道我该怎么做。我发现这个函数可以给我字节: PixelPacket[] MagickImage.getColormap(); 但我必须编写特殊的方法,将获得的像素数据包对象转换为连续的字节。我能做到,但

我正在尝试创建一个Java程序,该程序将OCR多种格式的图像。图像不能直接从文件中读取,因为它们的字节将通过网络发送

我目前能够使用ImageIO读取图像像素的原始字节。但是,我希望支持ImageMagick支持的所有格式,因此使用JMagick读取图像,然后将原始字节提供给Tess4J。我不知道我该怎么做。我发现这个函数可以给我字节:

PixelPacket[] MagickImage.getColormap();
但我必须编写特殊的方法,将获得的像素数据包对象转换为连续的字节。我能做到,但也许有更好的方法?例如,可能有一些非常原始的文件格式(甚至超过),我可以在这种方法中使用:

byte[] imageToBlob(ImageInfo imageInfo) ?
imageInfo
对象必须指向此原始格式,然后我可以从
bytes
数组中剪切像素信息

这是正确的方法还是我应该使用更简单(更快/更健壮)的方法

编辑


我发现我心目中的格式是调用的。

如果使用JMagick,我认为使用
dispatchImage
方法就是您想要的。它将使您能够直接访问图像的原始像素。不需要文件格式

请参阅我的示例,如果您愿意,也可以使用该类


我还为JMagick支持的许多相同格式编写了纯javaimageio插件,这可能很有用。你可以在我的房间里找到它们

多谢各位!我找不到这个方法,因为我主要查看返回类型,在
dispatchImage
的情况下,您将字节数组作为参数之一传递。应该考虑一下。。。