SlideShare a Scribd company logo
0
me
Jun Kasamatsu
mohemohe
mohemohe
内定者研修で出た課題が
とてもつらい
1© 2014 Yamato Fujinaka
2
Deleted
近況
3
4
Deleted
5
Deleted
6
残高ピンチ
7
movie
8
Revenge
9
Revenge
前回のスライド
10http://www.slideshare.net/mohemohe/20150527lt-share
WebcamRT
俺が考えた最強の
Webカメラ操作
ライブラリ
11
WebcamRT
WebcamRT
12
WebcamRT
demo
13
WebcamRT
demo
14
WebcamRT
今回はやります
15
WebcamRT
demo
16
スコープの範囲
why?
17
スコープの範囲
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;
}
スコープの範囲
using () {}
IDisposable
20
スコープの範囲
using () {}
IDisposable
21
スコープの範囲
C#のオブジェクト指向
• var hogeHuga = new HogeHuga();
• hogeHuga.Dispose();
22
スコープの範囲
C#のオブジェクト指向
class HogeHuga : FooBar, IDisposable
23
スコープの範囲
C#のオブジェクト指向
class HogeHuga : FooBar, IDisposable
using (var hogeHuga = new HogeHuga())
{
hogehuga.Do();
} // ここで自動的に Dispose() される
24
スコープの範囲
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
}
WebcamRT
done is better
than perfect.
27
WebcamRT
done is better
than perfect.
28
WebcamRT
クッソ遅い
29
Windows 8.1
LowLagPhotoCapture Class
Windows 8.1
30
31
Windows 8.1
ナウでヤングな若者のための
最高にロックな
低シャッター遅延フォト
32
WebcamRT
demo
33
WebcamRT
demo
34
WebcamRT
why?
35
36
WebcamRT
BitmapImage
Bitmap
37
WebcamRT
BitmapImage
Bitmap
38
WebcamRT
BitmapFrame.Create()
39
40
WebcamRT
なぜかできない
41
Deleted
agenda
• WebcamRT
• スコープの範囲
• ナウでヤングな若者のための最高にロックな低シャッター遅延フォト
43

More Related Content

What's hot

Of tutorials v2.3.1 (1)
Of tutorials v2.3.1 (1)Of tutorials v2.3.1 (1)
Of tutorials v2.3.1 (1)
Etsuji Nomura
 
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べたEmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べた
kyon mm
 
Transports on XMPP network
Transports on XMPP networkTransports on XMPP network
Transports on XMPP network
Hideki Saito
 
muninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリングmuninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリング
ngi group.
 

What's hot (20)

Of tutorials 3.0.1
Of tutorials 3.0.1Of tutorials 3.0.1
Of tutorials 3.0.1
 
Of tutorials v4.1
Of tutorials v4.1Of tutorials v4.1
Of tutorials v4.1
 
OpenFOAM tutorials foam-ext-3.2
OpenFOAM tutorials foam-ext-3.2OpenFOAM tutorials foam-ext-3.2
OpenFOAM tutorials foam-ext-3.2
 
Of tutorials 3.0.0(x)
Of tutorials 3.0.0(x)Of tutorials 3.0.0(x)
Of tutorials 3.0.0(x)
 
20151114 open cae@kansai
20151114 open cae@kansai20151114 open cae@kansai
20151114 open cae@kansai
 
Of tutorials 5.0
Of tutorials 5.0Of tutorials 5.0
Of tutorials 5.0
 
Of tutorials v2.4.0
Of tutorials v2.4.0Of tutorials v2.4.0
Of tutorials v2.4.0
 
three.js はじめましょ
three.js はじめましょthree.js はじめましょ
three.js はじめましょ
 
Of tutorials v1706
Of tutorials v1706Of tutorials v1706
Of tutorials v1706
 
Of tutorials v2.3.1 (1)
Of tutorials v2.3.1 (1)Of tutorials v2.3.1 (1)
Of tutorials v2.3.1 (1)
 
Nightmarejs
NightmarejsNightmarejs
Nightmarejs
 
Assembly Tanka on Web - Aiko Kenji
Assembly Tanka on Web - Aiko KenjiAssembly Tanka on Web - Aiko Kenji
Assembly Tanka on Web - Aiko Kenji
 
Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活
 
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べたEmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べた
 
RAW現像入門中…
RAW現像入門中…RAW現像入門中…
RAW現像入門中…
 
Ruby - gnuplot on Mac
Ruby - gnuplot on MacRuby - gnuplot on Mac
Ruby - gnuplot on Mac
 
Transports on XMPP network
Transports on XMPP networkTransports on XMPP network
Transports on XMPP network
 
MeshtreamerXR(改題)
MeshtreamerXR(改題)MeshtreamerXR(改題)
MeshtreamerXR(改題)
 
muninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリングmuninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリング
 
JavaOne報告会 LT資料
JavaOne報告会 LT資料 JavaOne報告会 LT資料
JavaOne報告会 LT資料
 

More from mohemohe

20151118卒研進捗LT
20151118卒研進捗LT20151118卒研進捗LT
20151118卒研進捗LT
mohemohe
 
20151104卒研中間発表
20151104卒研中間発表20151104卒研中間発表
20151104卒研中間発表
mohemohe
 
20151014新ゼミ生向け資料
20151014新ゼミ生向け資料20151014新ゼミ生向け資料
20151014新ゼミ生向け資料
mohemohe
 
20150909卒研進捗LT
20150909卒研進捗LT20150909卒研進捗LT
20150909卒研進捗LT
mohemohe
 
20150826卒研中間発表
20150826卒研中間発表20150826卒研中間発表
20150826卒研中間発表
mohemohe
 
20150805卒研進捗LT (share)
20150805卒研進捗LT (share)20150805卒研進捗LT (share)
20150805卒研進捗LT (share)
mohemohe
 
20150701卒研進捗LT (share)
20150701卒研進捗LT (share)20150701卒研進捗LT (share)
20150701卒研進捗LT (share)
mohemohe
 
20150610卒研進捗LT (share)
20150610卒研進捗LT (share)20150610卒研進捗LT (share)
20150610卒研進捗LT (share)
mohemohe
 
20150527卒研進捗LT (share)
20150527卒研進捗LT (share)20150527卒研進捗LT (share)
20150527卒研進捗LT (share)
mohemohe
 
20150512 進捗LT
20150512 進捗LT20150512 進捗LT
20150512 進捗LT
mohemohe
 

More from mohemohe (11)

20160208卒研発表
20160208卒研発表20160208卒研発表
20160208卒研発表
 
20151118卒研進捗LT
20151118卒研進捗LT20151118卒研進捗LT
20151118卒研進捗LT
 
20151104卒研中間発表
20151104卒研中間発表20151104卒研中間発表
20151104卒研中間発表
 
20151014新ゼミ生向け資料
20151014新ゼミ生向け資料20151014新ゼミ生向け資料
20151014新ゼミ生向け資料
 
20150909卒研進捗LT
20150909卒研進捗LT20150909卒研進捗LT
20150909卒研進捗LT
 
20150826卒研中間発表
20150826卒研中間発表20150826卒研中間発表
20150826卒研中間発表
 
20150805卒研進捗LT (share)
20150805卒研進捗LT (share)20150805卒研進捗LT (share)
20150805卒研進捗LT (share)
 
20150701卒研進捗LT (share)
20150701卒研進捗LT (share)20150701卒研進捗LT (share)
20150701卒研進捗LT (share)
 
20150610卒研進捗LT (share)
20150610卒研進捗LT (share)20150610卒研進捗LT (share)
20150610卒研進捗LT (share)
 
20150527卒研進捗LT (share)
20150527卒研進捗LT (share)20150527卒研進捗LT (share)
20150527卒研進捗LT (share)
 
20150512 進捗LT
20150512 進捗LT20150512 進捗LT
20150512 進捗LT
 

20150603卒研進捗LT (share)