【发布时间】:2014-11-07 16:01:02
【问题描述】:
我正在尝试创建一个可以对多种格式的图像进行 OCR 的 Java 程序。图像不能直接从文件中读取,因为它们的字节要通过网络发送。
我目前能够使用 ImageIO 读取图像像素的原始字节。但是我想支持 ImageMagick 支持的所有格式,所以使用 JMagick 读取图像,然后将原始字节提供给 Tess4J。我不确定我应该如何处理这个问题。我发现这个函数可以给我字节:
PixelPacket[] MagickImage.getColormap();
但我必须编写特殊方法将获得的 PixelPacket 对象转换为连续字节。我可以做到这一点,但也许有更好的方法来做到这一点?例如,也许有一些非常原始的文件格式(甚至比 http://en.wikipedia.org/wiki/BMP_file_format#mediaviewer/File:BMPfileFormat.png 还要多)我可以在这种方法中使用:
byte[] imageToBlob(ImageInfo imageInfo) ?
imageInfo 对象必须指向这种原始格式,然后我可以从 bytes 数组中截取像素信息。
这是正确的方法还是我应该使用更简单(更快/更健壮)的方法?
编辑
我发现我想到的格式叫做PNM。
【问题讨论】:
标签: java imagemagick tesseract jmagick tess4j