2010-10-22 57 views
0

我正在创建一个简单的HTTP服务器作为Java服务器的一部分。这个Java服务器的一个组件是从网络摄像头实时捕捉图像。目前我正在将图像写入磁盘,并通过Apache提供。在Java 1.6中如何通过HTTPHandler在内存中提供JPEG?

我最终想做的事情是将JPEG写入JPEG对象列表中的内存,然后使用HTTPHandler在请求时提供合适的图像。

我没有看到任何明确的方式来做到这一点。有人有主意吗?

这里是我如何获得图像,使用LTI公民作为捕捉库 - 这是它们保存到磁盘 - 我想将它们存储在内存中:

try 
    { 
    String fileName = "image" + System.currentTimeMillis() + ".jpg"; 

FileOutputStream os = new FileOutputStream(FILE_PATH + fileName); 
final JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(os); 
jpeg.encode(AWTImageConverter.toBufferedImage(image)); 

os.close(); 

log.info("Got image as filename: " + fileName); 
} 
catch (Exception e) 
{ 
log.error("An error occured", e); 
} 

回答

1

如果使用ByteArrayOutputStream代替一个FileOutputStream您可以捕获输出,然后在完成写入后调用toByteArray来获取数据。

至于为它服务,当你得到一个图像请求时,将内容类型设置为“image/jpeg”,将内容长度设置为字节数组的长度,然后将字节写入响应的输出流。

+0

这就像一个魅力,谢谢。 :-)为了后代万一有人真的想要一个代码示例,这就是我所做的。 – 2010-10-28 08:36:11

+0

删除我想我不能把代码放在这里... – 2010-10-28 08:36:51

相关问题