Download Jar. Uses 2596K of libraries. Click here for Pure Java version (4190L/29K).
1 | !7 |
2 | |
3 | lib 1008985 // webcam |
4 | lib 1008987 // bridj |
5 | lib 1004016 // slf4j api |
6 | |
7 | import com.github.sarxos.webcam.Webcam; |
8 | |
9 | /** |
10 | * @author Bartosz Firyn (SarXos) |
11 | */ |
12 | |
13 | p {
|
14 | time "list webcams" {
|
15 | L<Webcam> webcams = new L(Webcam.getWebcams()); |
16 | } |
17 | |
18 | // NOTE! |
19 | /* |
20 | * Yes, I know we could do this in one loop, but I wanted to prove here |
21 | * that it's possible to have many native webcams open in the same time. |
22 | * I tested this example with 4 webcams simultaneously connected to the |
23 | * USB bus - 1 x PC embedded device, and 3 x UVC devices connected to |
24 | * the USB concentration hub, which was connected to the USB 2.0 port. |
25 | * It's working like a charm. |
26 | */ |
27 | |
28 | // USB BANDWIDTH! |
29 | /* |
30 | * As you probably know the USB has limited bandwidth and therefore it |
31 | * may not be possible to transfer images from as many cameras as you |
32 | * would like to wish. This example works when I'm using QQVGA (176x144) |
33 | * but fails with the error message when I want to fetch VGA (640x480). |
34 | */ |
35 | |
36 | // open all at once (this is the most time-consuming operation, all |
37 | // others are executed instantly) |
38 | for i, Webcam webcam over webcams: { try {
|
39 | System.out.format("Opening %s\n", webcam.getName());
|
40 | time "Opening webcam" {
|
41 | webcam.open(); |
42 | } |
43 | } catch e {
|
44 | print("Can't open webcam " + webcam.getName() + " - " + silentException(e));
|
45 | webcams.remove(i--); |
46 | }} |
47 | |
48 | new L<Pair<S, BufferedImage>> images; |
49 | |
50 | // capture picture from all of them |
51 | for (int i = 0; i < webcams.size(); i++) pcall {
|
52 | Webcam webcam = webcams.get(i); |
53 | S name = webcam.getName(); |
54 | System.out.format("Capturing %s\n", name);
|
55 | time "Capturing image" {
|
56 | images.add(pair(name, webcam.getImage())); |
57 | } |
58 | } |
59 | |
60 | // close all |
61 | time "Closing webcams" {
|
62 | for (Webcam webcam : webcams) {
|
63 | System.out.format("Closing %s\n", webcam.getName());
|
64 | webcam.close(); |
65 | } |
66 | } |
67 | |
68 | for (Pair<S, BufferedImage> p : images) |
69 | showImage(p.a, p.b); |
70 | } |
Began life as a copy of #1008989
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1008996 |
| Snippet name: | Take screenshot from all web cams & display [WORKS] |
| Eternal ID of this version: | #1008996/10 |
| Text MD5: | f0a9a655fe171244e87154c92f92b937 |
| Transpilation MD5: | f8e82b5d70db6ba4afb80c912e0f5ccc |
| Author: | stefan |
| Category: | javax / desktop / camera |
| Type: | JavaX source code (desktop) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2017-06-28 15:46:12 |
| Source code size: | 2022 bytes / 70 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 972 / 1942 |
| Version history: | 9 change(s) |
| Referenced in: | [show references] |