diff --git a/Deployment/Licence.txt b/Deployment/Licence.txt
index 4bc4625..9b5e401 100644
--- a/Deployment/Licence.txt
+++ b/Deployment/Licence.txt
@@ -1,165 +1,202 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
\ No newline at end of file
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/Deployment/Setup.NuGet/Build.cmd b/Deployment/Setup.NuGet/Build.cmd
index fded2e5..63b6804 100644
--- a/Deployment/Setup.NuGet/Build.cmd
+++ b/Deployment/Setup.NuGet/Build.cmd
@@ -12,7 +12,7 @@ echo.
timeout /T 5
:: Set version info
-set version=2.5.6
+set version=3.0.0
set output=%cd%\bin\
:: Create output directory
diff --git a/Deployment/Setup.NuGet/Core/Platform.nuspec b/Deployment/Setup.NuGet/Core/Platform.nuspec
new file mode 100644
index 0000000..97126f1
--- /dev/null
+++ b/Deployment/Setup.NuGet/Core/Platform.nuspec
@@ -0,0 +1,32 @@
+
+
+
+
+ DotImaging.Core.Platform
+ $version$
+ DotImaging.Core.Platform
+ Darko Jurić
+ DotImaging
+ https://raw.githubusercontent.com/dajuric/dot-imaging/master/Deployment/Licence.txt
+ https://github.com/dajuric/dot-imaging
+ https://raw.githubusercontent.com/dajuric/dot-imaging/master/Deployment/Logo/logo-small.png
+ true
+
+ Provides the portable way to determine the execution platform.
+ For now, .NET 4.5 only!
+
+
+ Provides the portable way to determine the execution platform.
+ Provides some additional platform related interoperability functions.
+
+ execution-platform, OS, portable
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Deployment/Setup.NuGet/Core/readmePlatform.txt b/Deployment/Setup.NuGet/Core/readmePlatform.txt
new file mode 100644
index 0000000..70f8cbf
--- /dev/null
+++ b/Deployment/Setup.NuGet/Core/readmePlatform.txt
@@ -0,0 +1,12 @@
+ Provides the portable way to determine the execution platform.
+ Provides some additional platform related interoperability functions.
+
+1)
+Console.WriteLine(Platform.RunningPlatform); //Windows, Linux, MacOS
+
+2) (tried only on Windows)
+Platform.AddDllSearchPath(); //adds the "UnmanagedLibraries///" to the path (e.g. UnmanagedLibraries/Windows/x64)
+
+3)
+string pathToFile = @"bin\SomeFolder/SomeFolder2\\yourFile.txt";
+pathtoFile = pathtoFile.NormalizePathDelimiters(); //outputs "bin\\SomeFolder\\SomeFolder2\\yourFile.txt"
diff --git a/Deployment/Setup.NuGet/IO/IO.nuspec b/Deployment/Setup.NuGet/IO/IO.nuspec
index 3441758..f782a52 100644
--- a/Deployment/Setup.NuGet/IO/IO.nuspec
+++ b/Deployment/Setup.NuGet/IO/IO.nuspec
@@ -1,49 +1,48 @@
-
-
-
-
- DotImaging.IO
- $version$
- DotImaging.IO
- Darko Jurić
- DotImaging
- https://raw.githubusercontent.com/dajuric/dot-imaging/master/Deployment/Licence.txt
- https://github.com/dajuric/dot-imaging
- https://raw.githubusercontent.com/dajuric/dot-imaging/master/Deployment/Logo/logo-small.png
- true
-
- Provides unified API for IO video access: web-camera support, various video-format reading / writing, image-directory reader and functions for image reading and writing.
- All operations on image streams are standard stream operations and do not depend on actual video source.
- The library is made in platform-abstract fashion.
-
- Provides unified API for IO video and image access.
- video-capture image-IO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ DotImaging.IO
+ $version$
+ DotImaging.IO
+ Darko Jurić
+ DotImaging
+ https://raw.githubusercontent.com/dajuric/dot-imaging/master/Deployment/Licence.txt
+ https://github.com/dajuric/dot-imaging
+ https://raw.githubusercontent.com/dajuric/dot-imaging/master/Deployment/Logo/logo-small.png
+ true
+
+ Unified stream-like platform-abstract API for IO video access: web-camera support, various video-format reading / writing, image-directory reader.
+ Image loading/saving (file or in-memory).
+
+ Loading and saving images and image streams (file, in-memory, camera, video, directory).
+ image-encode, image-decode, image-load, image-save, image-directory, camera-capture, multiple-camera-capture, video-capture, video-write
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Deployment/Setup.NuGet/IO/readmeIO.txt b/Deployment/Setup.NuGet/IO/readmeIO.txt
index 8541308..b4881e5 100644
--- a/Deployment/Setup.NuGet/IO/readmeIO.txt
+++ b/Deployment/Setup.NuGet/IO/readmeIO.txt
@@ -1,41 +1,47 @@
-Provides unified API for IO video access: web-camera support, various video-format reading / writing, image-directory reader and functions for image reading and writing.
-All operations on image streams are standard stream operations and do not depend on actual video source.
-The library is made in platform-abstract fashion.
-
-1) image loading / saving:
-
- Bgr[,] image = ImageIO.LoadColor("sample.jpg"); //load Bgr color image
- Gray[,] hdrImage = (ImageIO.LoadUnchanged("hdrImage.png") as Image>).Clone(); //load HDR grayscale (or any other) image
-
- image.Save("image.png");
-
-
-2) media (camera, video, image-directory) capture:
-
- ImageStreamReader reader = new CameraCapture(); //use specific class for device-specific properties (e.g. exposure, image name, ...)
- reader.Open();
-
- //read single frame
- var frame = reader.ReadAs>();
-
- //read the rest of images (do not do that with the CameraCapture :) )
- foreach(var image in reader)
- {
- //do something with the image
- }
-
- reader.Close();
-
-3) video writer:
-
- ImageStreamWriter videoWriter = new VideoWriter("out.avi", new Size(1280, 1024));
-
- var image = new Bgr[1024, 1280];
- videoWriter.Write(image.Lock()); //write a single frame
-
- videoWriter.Close();
-
-
-Discover more types as you type :)
-
-
+Unified stream-like platform-abstract API for IO video access: web-camera support, various video-format reading / writing, image-directory reader.
+Image loading/saving (file or in-memory).
+
+1) image loading / saving:
+
+ Bgr[,] image = ImageIO.LoadColor("sample.jpg"); //load Bgr color image
+ Gray[,] hdrImage = (ImageIO.LoadUnchanged("hdrImage.png") as Image>).Clone(); //load HDR grayscale (or any other) image
+ image.Save("image.png");
+
+
+2) image in-memory encoding / decoding
+
+ Bgr[,] bgrIm = ImageIO.LoadColor("sample.jpg");
+ byte[] encodedBgr = bgrIm.EncodeAsJpeg(); //or png, bmp
+ Bgr[,] decodedBgr = encodedBgr.DecodeAsColorImage();
+
+
+3) media (camera, video, image-directory) capture:
+
+ ImageStreamReader reader = new CameraCapture(); //use specific class for device-specific properties (e.g. exposure, image name, ...)
+ reader.Open();
+
+ //read single frame
+ var frame = reader.ReadAs>();
+
+ //read the rest of images (do not do that with the CameraCapture :) )
+ foreach(var image in reader)
+ {
+ //do something with the image
+ }
+
+ reader.Close();
+
+
+4) video writer:
+
+ ImageStreamWriter videoWriter = new VideoWriter("out.avi", new Size(1280, 1024));
+
+ var image = new Bgr[1024, 1280];
+ videoWriter.Write(image.Lock()); //write a single frame
+
+ videoWriter.Close();
+
+
+Discover more types as you type :)
+
+
diff --git a/Deployment/Setup.NuGet/Setup.NuGet.csproj b/Deployment/Setup.NuGet/Setup.NuGet.csproj
index 34a3687..d837c80 100644
--- a/Deployment/Setup.NuGet/Setup.NuGet.csproj
+++ b/Deployment/Setup.NuGet/Setup.NuGet.csproj
@@ -1,81 +1,85 @@
-
-
-
-
- Debug
- AnyCPU
- {131A083D-F12A-48FA-8A7D-381C6B5C222D}
- Library
- Properties
- Setup.NuGet
- Setup.NuGet
- v4.5
- 512
-
-
- true
- full
- false
- bin\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\
- TRACE
- prompt
- 4
-
-
-
-
-
- Designer
-
-
-
-
- Designer
-
-
- Designer
-
-
- Designer
-
-
- Designer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {131A083D-F12A-48FA-8A7D-381C6B5C222D}
+ Library
+ Properties
+ Setup.NuGet
+ Setup.NuGet
+ v4.5
+ 512
+
+
+ true
+ full
+ false
+ bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+ Designer
+
+
+ Designer
+
+
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DotImaging.sln b/DotImaging.sln
index e083f15..d87b802 100644
--- a/DotImaging.sln
+++ b/DotImaging.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.31101.0
+# Visual Studio 14
+VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{80058A54-6223-480C-AA19-F99E7AE593F3}"
EndProject
@@ -64,6 +64,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{5A6626
.nuget\NuGet.targets = .nuget\NuGet.targets
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultipleCameraCapture", "Samples\MultipleCameraCapture\MultipleCameraCapture.csproj", "{C30A145E-02FB-49B4-8F3E-6673AF9D121A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -126,6 +128,10 @@ Global
{F46115E9-C4FC-4355-93AE-BE8E96B236C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F46115E9-C4FC-4355-93AE-BE8E96B236C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F46115E9-C4FC-4355-93AE-BE8E96B236C9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C30A145E-02FB-49B4-8F3E-6673AF9D121A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C30A145E-02FB-49B4-8F3E-6673AF9D121A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C30A145E-02FB-49B4-8F3E-6673AF9D121A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C30A145E-02FB-49B4-8F3E-6673AF9D121A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -146,5 +152,6 @@ Global
{8F4ADF98-76E1-4893-A458-486542EED521} = {80058A54-6223-480C-AA19-F99E7AE593F3}
{D5767A78-E50A-4B5D-94F5-44A59B87F944} = {80058A54-6223-480C-AA19-F99E7AE593F3}
{F46115E9-C4FC-4355-93AE-BE8E96B236C9} = {80058A54-6223-480C-AA19-F99E7AE593F3}
+ {C30A145E-02FB-49B4-8F3E-6673AF9D121A} = {05BDC895-7F7B-4B6F-8D69-E7916837092D}
EndGlobalSection
EndGlobal
diff --git a/README.md b/README.md
index 961c4e5..b357566 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
-
+
**DotImaging** - .NET array as imaging object
diff --git a/Samples/Capture/CaptureDemo.cs b/Samples/Capture/CaptureDemo.cs
index b4acbdc..6a96634 100644
--- a/Samples/Capture/CaptureDemo.cs
+++ b/Samples/Capture/CaptureDemo.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
@@ -56,10 +55,10 @@ void capture_NewFrame(object sender, EventArgs e)
if (frame == null)
{
- /*Application.Idle -= capture_NewFrame;
- return;*/
- reader.Seek(0, SeekOrigin.Begin);
+ Application.Idle -= capture_NewFrame;
return;
+ /*reader.Seek(0, SeekOrigin.Begin);
+ return;*/
}
this.pictureBox.Image = frame.ToBitmap();
diff --git a/Samples/Capture/Program.cs b/Samples/Capture/Program.cs
index f679f4b..fa104e4 100644
--- a/Samples/Capture/Program.cs
+++ b/Samples/Capture/Program.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/Capture/Properties/AssemblyInfo.cs b/Samples/Capture/Properties/AssemblyInfo.cs
index 3527617..32a17e1 100644
--- a/Samples/Capture/Properties/AssemblyInfo.cs
+++ b/Samples/Capture/Properties/AssemblyInfo.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/CaptureAndRecording/CaptureAndRecordingDemo.cs b/Samples/CaptureAndRecording/CaptureAndRecordingDemo.cs
index 195bc98..c86c1ef 100644
--- a/Samples/CaptureAndRecording/CaptureAndRecordingDemo.cs
+++ b/Samples/CaptureAndRecording/CaptureAndRecordingDemo.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/CaptureAndRecording/Program.cs b/Samples/CaptureAndRecording/Program.cs
index 578d5bb..90fd5bd 100644
--- a/Samples/CaptureAndRecording/Program.cs
+++ b/Samples/CaptureAndRecording/Program.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/CaptureAndRecording/Properties/AssemblyInfo.cs b/Samples/CaptureAndRecording/Properties/AssemblyInfo.cs
index 1d88e75..bcf3694 100644
--- a/Samples/CaptureAndRecording/Properties/AssemblyInfo.cs
+++ b/Samples/CaptureAndRecording/Properties/AssemblyInfo.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/GenericImageInteropDemo/Program.cs b/Samples/GenericImageInteropDemo/Program.cs
index f31822f..2faf8c5 100644
--- a/Samples/GenericImageInteropDemo/Program.cs
+++ b/Samples/GenericImageInteropDemo/Program.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
@@ -49,7 +48,7 @@ static void Main(string[] args)
IplImage iplImage;
using (var uImg = img.Lock())
{
- iplImage = uImg.AsOpenCvImage(); //data is shared
+ iplImage = uImg.AsCvIplImage(); //data is shared
}
//from IplImage
var imgFromIpl = iplImage.AsImage();
diff --git a/Samples/GenericImageInteropDemo/Properties/AssemblyInfo.cs b/Samples/GenericImageInteropDemo/Properties/AssemblyInfo.cs
index 9d1e567..ef4cd89 100644
--- a/Samples/GenericImageInteropDemo/Properties/AssemblyInfo.cs
+++ b/Samples/GenericImageInteropDemo/Properties/AssemblyInfo.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/ImageExtractor/Program.cs b/Samples/ImageExtractor/Program.cs
index 9a82da8..1011439 100644
--- a/Samples/ImageExtractor/Program.cs
+++ b/Samples/ImageExtractor/Program.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/ImageExtractor/Properties/AssemblyInfo.cs b/Samples/ImageExtractor/Properties/AssemblyInfo.cs
index 9ef7305..ff5a513 100644
--- a/Samples/ImageExtractor/Properties/AssemblyInfo.cs
+++ b/Samples/ImageExtractor/Properties/AssemblyInfo.cs
@@ -2,21 +2,20 @@
// DotImaging Framework
// https://github.com/dajuric/dot-imaging
//
-// Copyright © Darko Jurić, 2014-2015-2015
+// Copyright © Darko Jurić, 2014-2015
// darko.juric2@gmail.com
//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see .
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
//
#endregion
diff --git a/Samples/MultipleCameraCapture/App.config b/Samples/MultipleCameraCapture/App.config
new file mode 100644
index 0000000..d740e88
--- /dev/null
+++ b/Samples/MultipleCameraCapture/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/MultipleCameraCapture/CaptureWindow.Designer.cs b/Samples/MultipleCameraCapture/CaptureWindow.Designer.cs
new file mode 100644
index 0000000..902db3a
--- /dev/null
+++ b/Samples/MultipleCameraCapture/CaptureWindow.Designer.cs
@@ -0,0 +1,67 @@
+namespace MultipleCameraCapture
+{
+ partial class CaptureWindow
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.pictureBox = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
+ this.SuspendLayout();
+ //
+ // pictureBox
+ //
+ this.pictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pictureBox.Location = new System.Drawing.Point(7, 3);
+ this.pictureBox.Margin = new System.Windows.Forms.Padding(2);
+ this.pictureBox.Name = "pictureBox";
+ this.pictureBox.Size = new System.Drawing.Size(640, 480);
+ this.pictureBox.TabIndex = 3;
+ this.pictureBox.TabStop = false;
+ //
+ // CaptureDemo
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(653, 489);
+ this.Controls.Add(this.pictureBox);
+ this.Name = "CaptureDemo";
+ this.Text = "Capture Demo";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CaptureDemo_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.PictureBox pictureBox;
+ }
+}
+
diff --git a/Samples/MultipleCameraCapture/CaptureWindow.cs b/Samples/MultipleCameraCapture/CaptureWindow.cs
new file mode 100644
index 0000000..7f0f56f
--- /dev/null
+++ b/Samples/MultipleCameraCapture/CaptureWindow.cs
@@ -0,0 +1,69 @@
+#region Licence and Terms
+// DotImaging Framework
+// https://github.com/dajuric/dot-imaging
+//
+// Copyright © Darko Jurić, 2014-2015
+// darko.juric2@gmail.com
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using DotImaging;
+using System;
+using System.Windows.Forms;
+using DotImaging.Primitives2D;
+
+namespace MultipleCameraCapture
+{
+ public partial class CaptureWindow : Form
+ {
+ CameraCapture reader;
+
+ public CaptureWindow(int cameraIndex = -1)
+ {
+ InitializeComponent();
+ pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
+ if (cameraIndex == -1)
+ return;
+
+ reader = new CameraCapture(cameraIndex);
+ reader.FrameSize = new Size(640, 480);
+ reader.Open();
+
+ this.Text = "Camera " + cameraIndex;
+ Application.Idle += capture_NewFrame;
+ }
+
+ Bgr[,] frame = null;
+ void capture_NewFrame(object sender, EventArgs e)
+ {
+ reader.ReadTo>(ref frame);
+
+ if (frame == null)
+ {
+ Application.Idle -= capture_NewFrame;
+ return;
+ }
+
+ this.pictureBox.Image = frame.ToBitmap();
+ GC.Collect();
+ }
+
+ private void CaptureDemo_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (reader != null)
+ reader.Dispose();
+ }
+ }
+}
diff --git a/Samples/MultipleCameraCapture/MultipleCameraCapture.csproj b/Samples/MultipleCameraCapture/MultipleCameraCapture.csproj
new file mode 100644
index 0000000..9573088
--- /dev/null
+++ b/Samples/MultipleCameraCapture/MultipleCameraCapture.csproj
@@ -0,0 +1,110 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {C30A145E-02FB-49B4-8F3E-6673AF9D121A}
+ WinExe
+ Properties
+ MultipleCameraCapture
+ MultipleCameraCapture
+ v4.5.2
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ CaptureWindow.cs
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+ {ce222a84-b03b-4053-8ba4-f237063382f2}
+ BitmapInterop
+
+
+ {3cf8f155-3da1-4529-9b28-d409e86ed4e2}
+ GenericImage
+
+
+ {ed70a44e-9443-4a28-9b95-31299f8b2d08}
+ IO
+
+
+ {d5767a78-e50a-4b5d-94f5-44a59b87f944}
+ Primitives2D
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/MultipleCameraCapture/Program.cs b/Samples/MultipleCameraCapture/Program.cs
new file mode 100644
index 0000000..544369c
--- /dev/null
+++ b/Samples/MultipleCameraCapture/Program.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Windows.Forms;
+using DotImaging;
+using System.Collections.Generic;
+
+namespace MultipleCameraCapture
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+
+ var activeForms = new List