WinRT, munka egy webkamera
Azt már láttuk, hogy a Windows Runtime alkalmazás objektumok létrehozásához WriteableBitmap «nulla» vagy letölthető meglévő bitmap kép. Vannak más módja annak, hogy bitképeknél programokat. Például, később látni fogjuk, mindkét program kaphat képek más alkalmazásokban - akár közvetlenül, akár a vágólapra.
Fényképek beolvasása kamera
Ezen túlmenően, az alkalmazás kaphat egy képet a beépített kamerával. Két fő megoldás erre a problémára; ha kész átadni a menedzsment a Windows 8, az operációs rendszer képes megjeleníteni a szokásos kamera interface, a folyamat rendkívül egyszerű.
A kamera használata, akkor kifejezetten lehetővé teszik a Package.appxmanifest fájlt. A Visual Studio, nyissa meg a fájlt, kattintson a Csatlakozás fülre és webkamera mezőbe. Megcsináltam minden EasyCameraCapture programot. Főoldal fájlt. XAML így néz ki:
A gomb Click eseménykezelő létrehoz egy példányt az osztály CameraCaptureUI. bizonyos helyet Windows.Media.Capture nevek okoz CaptureFileAsync módszer.
CaptureFileAsync hívás előtt a program beállítása a különböző tulajdonságok CameraCaptureUI válassza ki a fájl formátumát és méretét pixelben benne metszés, stb
Hogy visszatérjen az alkalmazás EasyCameraCapture nyomja meg a kerek gombot a nyíl; Ebben az esetben StorageFile visszaadott objektum null. Azt is menteni egy képet megérintve vagy rákattint a képernyőn, majd nyomja meg az alsó gombot a „tick”.
Amikor visszatér a program célja StorageFile olyan fájlra, amely a könyvtárban tárolt TempState helyi alkalmazás tárolja. EasyCameraCapture kódot egyszerűen megjeleníti a fájl tartalmát.
Az alkalmazás is át FileSavePicker ellenőrzés menteni a képet ellenőrzése alatt a felhasználó, vagy mentse a kép automatikusan valahol a Pictures könyvtárban. Talán az alkalmazás specifikusan kezeli a tárolt kép, és ez számukra kényelmes lesz kiosztani egy külön mappát a képek könyvtárban. (A szabványos Windows 8 app kamera tárolja a képeket egy alkönyvtár Filmtekercs Pictures mappában.) Ehhez engedélyezni kell a hozzáférést a képek könyvtár az alkalmazás beállításait, akárcsak a normál Windows 8 app kamera.
Miután megkapta az eszköz azonosítója, Loaded felvezető teremt MediaCaptureInitializationSettings kifogást, és arra használja, hogy inicializálja MediaCapture objektumot. meghatározott területen formátumban. Object MediaCapture kijelölt CaptureElement forrás adatok elemet, amelynek egy példánya jön létre az XAML fájlt.
Arra is rájöttem, Menetes felvezető a képet. MediaCapture osztály tartalmaz módszerek és CapturePhotoToStorageFileAsync CapturePhotoToStreamAsync. Azért választottam a második megoldás a képek tárolását a patak a memóriában, ahol az objektum kaphat BitmapDecoder bit pixel. A program kölcsönzi a szerkezet HSL FingerPaint növelését célzó programot telítettség az összes pixel, majd létrehoz WriteableBitmap objektumot az eredmény:
Természetesen a magas színtelítettség néha meg ijesztő :)