加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

将扫描图像的内容流式传输到Java中的文件

发布时间:2020-12-15 02:29:35 所属栏目:Java 来源:网络整理
导读:我正在尝试使用Morena和Sane扫描图像并使用Swing应用程序将其保存到给定特定格式(Tiff或Jpeg)的文件中. 我用这个过程将整个图像加载到内存中: SaneSource source = /* source implemented here */;MorenaImage morenaImage = new MorenaImage(source);Image
我正在尝试使用Morena和Sane扫描图像并使用Swing应用程序将其保存到给定特定格式(Tiff或Jpeg)的文件中.

我用这个过程将整个图像加载到内存中:

SaneSource source = /* source implemented here */;
MorenaImage morenaImage = new MorenaImage(source);

Image image=Toolkit.getDefaultToolkit().createImage(morenaImage);
BufferedImage bimg = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

Graphics2D g = bimg.createGraphics();
g.drawImage(image,null);

ImageIO.write(bimg,"jpg",new File(filename));

我很确定有一种更好的方法可以做到这一点,而不会占用我的所有记忆,比如将我在扫描图像中的内容通过消费者/观察者传输到文件中,但是我无法将这些内容包裹得很好创建自己的解决方案的想法.

能否帮助我走上更好的图像处理之路?
先谢谢大卫

解决方法

您应该将ImageConsumer(将使用您喜欢的图像格式将图像写入OutputStream)直接附加到ImageProducer(如果您愿意,可以使用SaneSource或MorenaImage).您可以找到将图像编码为PPM并将其传输到OutputStream here的ImageConsumer示例.您需要编写类似这样的内容才能使用此示例:

ImageProducer prod = ... your producer here ....;
PpmEncoder ppm = new PpmEncoder(prod,myOutputStream);
ppm.encode();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读