私が取り組んでいるプロジェクトは、Arduino UNO とVideo Experimenter シールドの助けを借りて、セキュリティ カメラからフレームをキャプチャすることです。次に、フレームをシリアル ポート経由でバイト配列として送信します。Java を使用して、このバイト配列を画像に変換し、この画像をストリーミングする方法、またはこの画像をビデオにしてからストリーミングする方法を Web サーバー経由で行うにはどうすればよいでしょうか?
私が積み重ねたコードはこれです:
//Handle an event on the serial port. Read the data and save the image.
public synchronized void serialEvent(SerialPortEvent oEvent) {
if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
System.out.println("Got it!");
int available = input.available();
byte[] chunk = new byte[available];
input.read(chunk, 0, available);
InputStream in = new ByteArrayInputStream(chunk);
BufferedImage image = ImageIO.read(in);
ImageIO.write(image, "BMP", new File ("/home/zuss/images/image.BMP"));
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
ターミナル ウィンドウに戻りますjava.lang.IllegalArgumentException: image == null!
。arduino がシリアル ポートにデータを送信している限り、継続的に実行されます。