みなさん、変な質問です。私の会社には、イーサネット経由で接続されたカメラで撮影した画像を記録する別の会社のアプリケーションがあります。彼らのアプリは C++ で書かれており、Java を使用して変換/ハッキングしようとしています。
画像を受信できますが、品質は同じではありません。上の写真は彼らのアプリから、下の写真は私のものです。
これらのアーティファクトが、Java で記述された私のバージョンのアプリに表示される理由は何ですか? BMP 画像と JPG 画像の両方で発生します。
それが機能する方法は、ソケット (C++ バージョンと Java バージョンの両方) を介するだけです... コマンドが送信されて画像をキャプチャすると、カメラはデータ (バイト) を送信することで応答します。バイト配列を保存し、それらから新しい BufferedImage を作成します。
// Create buffered image from bytes
image = ImageIO.read(new ByteArrayInputStream(imageBytes));
ご意見やアイデアをお寄せいただきありがとうございます。