20150603卒研進捗lt (share)
TRANSCRIPT
![Page 1: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/1.jpg)
Revenge
1
![Page 2: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/2.jpg)
me
Jun Kasamatsu mohemohe
mohemohe
内定者研修で出た課題が
とてもつらい
© 2014 Yamato Fujinaka 2
![Page 3: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/3.jpg)
3
![Page 4: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/4.jpg)
近況
4
![Page 5: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/5.jpg)
5
![Page 6: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/6.jpg)
6
w/ WiiU
![Page 7: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/7.jpg)
7
![Page 8: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/8.jpg)
残高ピンチ
8
![Page 9: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/9.jpg)
movie
9
![Page 10: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/10.jpg)
Revenge
10
![Page 11: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/11.jpg)
Revenge
前回のスライド
11http://www.slideshare.net/mohemohe/20150527lt-share
![Page 12: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/12.jpg)
WebcamRT
俺が考えた最強の
Web カメラ操作
ライブラリ12http://www.slideshare.net/mohemohe/20150527lt-share
![Page 13: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/13.jpg)
WebcamRT
WebcamRT
13http://www.slideshare.net/mohemohe/20150527lt-share
![Page 14: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/14.jpg)
WebcamRT
demo
14http://www.slideshare.net/mohemohe/20150527lt-share
![Page 15: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/15.jpg)
WebcamRT
demo
15http://www.slideshare.net/mohemohe/20150527lt-share
![Page 16: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/16.jpg)
WebcamRT
今回はやります
16
![Page 17: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/17.jpg)
WebcamRT
demo
17
![Page 18: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/18.jpg)
スコープの範囲
why?
18
![Page 19: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/19.jpg)
スコープの範囲public async Task<Bitmap> GetBitmap(){ if (!_initialized) { throw new DeviceNotInitializedException(); }
Bitmap bitmap; using (var ras = new InMemoryRandomAccessStream()) { await _capture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreatePng(), ras); ras.Seek(0); bitmap = new Bitmap(ras.AsStream()); } return bitmap;}
19
![Page 20: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/20.jpg)
スコープの範囲public async Task<Bitmap> GetBitmap(){ if (!_initialized) { throw new DeviceNotInitializedException(); }
Bitmap bitmap; Stream stream; using (var ras = new InMemoryRandomAccessStream()) { await _capture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreatePng(), ras); ras.Seek(0); stream = ras.AsStream(); } bitmap = new Bitmap(stream); return bitmap;}
20
![Page 21: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/21.jpg)
スコープの範囲
using () {}IDisposable
21
![Page 22: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/22.jpg)
スコープの範囲
using () {}IDisposable
22
![Page 23: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/23.jpg)
スコープの範囲
C# のオブジェクト指向• var hogeHuga = new HogeHuga();
• hogeHuga.Dispose();
23
![Page 24: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/24.jpg)
スコープの範囲
C# のオブジェクト指向class HogeHuga : FooBar, IDisposable
24
![Page 25: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/25.jpg)
スコープの範囲
C# のオブジェクト指向class HogeHuga : FooBar, IDisposable
using (var hogeHuga = new HogeHuga())
{
hogehuga.Do();
} // ここで自動的に Dispose() される
25
![Page 26: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/26.jpg)
スコープの範囲public async Task<Bitmap> GetBitmap(){ if (!_initialized) { throw new DeviceNotInitializedException(); }
Bitmap bitmap; Stream stream; using (var ras = new InMemoryRandomAccessStream()) { await _capture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreatePng(), ras); ras.Seek(0); stream = ras.AsStream(); // ras のメモリアドレスを参照しているだけ } // ここで Dispose() されて stream が null になる bitmap = new Bitmap(stream); // null から Bitmap を生成できなくて死ぬ return bitmap;}
26
![Page 27: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/27.jpg)
スコープの範囲public async Task<Bitmap> GetBitmap(){ if (!_initialized) { throw new DeviceNotInitializedException(); }
Bitmap bitmap; using (var ras = new InMemoryRandomAccessStream()) { await _capture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreatePng(), ras); ras.Seek(0); bitmap = new Bitmap(ras.AsStream()); // スコープ外の bitmap に Bitmap オブジェクトを作っておく } return bitmap; // ras は使っていないので Dispose() されても OK}
27
![Page 28: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/28.jpg)
WebcamRT
done is better
than perfect.
28
![Page 29: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/29.jpg)
WebcamRT
done is better
than perfect.
29
![Page 30: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/30.jpg)
WebcamRT
クッソ遅い
30
![Page 31: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/31.jpg)
Windows 8.1
LowLagPhotoCapture
ClassWindows 8.1
31
![Page 32: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/32.jpg)
32
![Page 33: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/33.jpg)
Windows 8.1
ナウでヤングな若者のための
最高にロックな
低シャッター遅延フォト
33
![Page 34: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/34.jpg)
WebcamRT
demo
34
![Page 35: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/35.jpg)
WebcamRT
demo
35
![Page 36: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/36.jpg)
WebcamRT
why?
36
![Page 37: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/37.jpg)
37
![Page 38: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/38.jpg)
WebcamRT
BitmapImage
Bitmap38
![Page 39: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/39.jpg)
WebcamRT
BitmapImage
Bitmap39
![Page 40: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/40.jpg)
WebcamRT
BitmapFrame.Create(
)
40
![Page 41: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/41.jpg)
41
![Page 42: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/42.jpg)
WebcamRT
なぜかできない
42
![Page 43: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/43.jpg)
![Page 44: 20150603卒研進捗LT (share)](https://reader035.vdocuments.net/reader035/viewer/2022062407/55cfb751bb61eb28148b4686/html5/thumbnails/44.jpg)
agenda
• WebcamRT
• スコープの範囲
• ナウでヤングな若者のための最高にロックな低シャッター遅延フォト
44