3月定例会(33月定例会(月定例会( 南秋田郡大潟村字中央1番 … · 2018-04-04 · 卒業・卒園おめでとう(卒卒業・卒園おめでとう(業
20150603卒研進捗LT (share)
Transcript of 20150603卒研進捗LT (share)
Revenge
1
me
Jun Kasamatsu mohemohe
mohemohe
内定者研修で出た課題が
とてもつらい
© 2014 Yamato Fujinaka 2
3
近況
4
5
6
w/ WiiU
7
残高ピンチ
8
movie
9
Revenge
10
Revenge
前回のスライド
11http://www.slideshare.net/mohemohe/20150527lt-share
WebcamRT
俺が考えた最強の
Web カメラ操作
ライブラリ12http://www.slideshare.net/mohemohe/20150527lt-share
WebcamRT
WebcamRT
13http://www.slideshare.net/mohemohe/20150527lt-share
WebcamRT
demo
14http://www.slideshare.net/mohemohe/20150527lt-share
WebcamRT
demo
15http://www.slideshare.net/mohemohe/20150527lt-share
WebcamRT
今回はやります
16
WebcamRT
demo
17
スコープの範囲
why?
18
スコープの範囲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
スコープの範囲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
スコープの範囲
using () {}IDisposable
21
スコープの範囲
using () {}IDisposable
22
スコープの範囲
C# のオブジェクト指向• var hogeHuga = new HogeHuga();
• hogeHuga.Dispose();
23
スコープの範囲
C# のオブジェクト指向class HogeHuga : FooBar, IDisposable
24
スコープの範囲
C# のオブジェクト指向class HogeHuga : FooBar, IDisposable
using (var hogeHuga = new HogeHuga())
{
hogehuga.Do();
} // ここで自動的に Dispose() される
25
スコープの範囲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
スコープの範囲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
WebcamRT
done is better
than perfect.
28
WebcamRT
done is better
than perfect.
29
WebcamRT
クッソ遅い
30
Windows 8.1
LowLagPhotoCapture
ClassWindows 8.1
31
32
Windows 8.1
ナウでヤングな若者のための
最高にロックな
低シャッター遅延フォト
33
WebcamRT
demo
34
WebcamRT
demo
35
WebcamRT
why?
36
37
WebcamRT
BitmapImage
Bitmap38
WebcamRT
BitmapImage
Bitmap39
WebcamRT
BitmapFrame.Create(
)
40
41
WebcamRT
なぜかできない
42
agenda
• WebcamRT
• スコープの範囲
• ナウでヤングな若者のための最高にロックな低シャッター遅延フォト
44