58

Java を使用して Web カメラにアクセスする必要があります。これが私がやりたいことです

  1. Web カメラにアクセスする

  2. ユーザーの顔が画面に表示されるため、ユーザーは Web カメラの動作を確認できます (Web カメラのビデオ出力を表示しないライブラリがいくつかあると聞いています)。

  3. ユーザーが保存ボタンをクリックすると、スナップショットを取得して保存します

私は長い間、これを行うために多くの方法を試してきました。

  1. JMF - 今は死んでいる
  2. FMJ - 今はそれも死んでいる
  3. VLCJ - 私は音楽/ビデオ プレーヤーを作成しておらず、VLC がインストールされていることを期待しているため、多すぎます。
  4. Xuggler - 多すぎて大変な作業
  5. JMyron - 動作しませんでした
  6. JavaFX - できると思っていたのにできないらしい

ライブラリが上記のことだけを行っているだけでも満足です。それで十分だからです。しかし、それも単純であることを期待しています。DLL を使用していない場合は、プラットフォームに依存しないため、非常に優れています。VLCJのようにカメラ名やその他の情報を手動で渡すことなく、カメラを検出できるかどうか本当に感謝しています(何千ものカメラブランドがある可能性があるため、その中に何千もの要素のリストを作成することはできません). また、Web アプリではなく、デスクトップ アプリケーションを作成しています。

このような図書館をご存知でしたら、教えてください。他のライブラリ (私の要件のすべてには合わないかもしれませんが、基本的な要件には適しています) も歓迎します。助けてください

4

2 に答える 2

81

あなたが探しているプロジェクトは次のとおりだと思います: https://github.com/sarxos/webcam-capture (私は作者です)

あなたが説明したとおりに動作する例があります-実行後、ウィンドウが表示され、「開始」ボタンを押した後、ウェブカメラデバイスからのライブ画像を表​​示し、「スナップショット」をクリックした後にファイルに保存できます(ソースコードが利用可能です。隅にある FPS カウンターは無効にできることに注意してください):

スナップショット

このプロジェクトは移植可能 (WinXP、Win7、Win8、Linux、Mac、Raspberry Pi) であり、PC に追加のソフトウェアをインストールする必要はありません。

API は本当に素晴らしく、習得が容易です。単一の画像をキャプチャして PNG ファイルに保存する方法の例:

Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("test.png"));
于 2013-11-15T20:48:26.913 に答える