7.1から搭載されたPhotoCameraクラスを使用して静止画撮影の方法についてご紹介しました。このPhotoCameraクラスには,静止画撮影関係の機能以外にも,プレビュー中のフレーム(画像)をARGB32形式,YCbCr形式,Y成分(輝度情報のみ)の形式で取得することができます。プレビューフレームを用いることで,リアルタイムでエフェクトをかけながら表示したり,特定のマーカーを探しバーコードを読み取るアプリケーションを開発することができます。今回は,プレビューフレームを取得する方法と取得したフレームの利用方法についてご紹介いたします。サンプルプロジェクトを2つご用意しましたので,是非ソースコードと一緒に記事を読み進めて頂ければと思います。CameraPreviewTest_Barcode.zipプレビューしながらリアルタイムエフェクト処理CameraPreviewTest_ColorEffect.zipプレビューしながらリアルタイムバーコード解析ARGB32形式のプレビューフレームを取得してエフェクト処理を行う冒頭の「CameraPreviewTest_ColorEffect.zip」のほうのサンプルプロジェクトを使用しながらTipsをご紹介します。Microsoft.Devices名前空間のPhotoCamera.GetPreviewBufferArgb32メソッドで,ARGB32フォーマットでプレビュー中に表示されている画像(プレビューフレーム)を取得します。7でもPCでも同じですが,ディスプレイに表示されている画面はピクセルという最小単位で構成されています。各ピクセルはピクセルの不透明度を示すアルファ値を持ちます。ピクセルの構成をイメージで表すと下図の通りです。上位8ビットにはアルファ値が格納されています。このアルファ値は不透明度を表した値で,アルファ値が最大(255)の場合は不透明に,0の場合は透明となります。下位24ビットにRGB値が格納されています。RGBとは三原色(R成分,G成分,B色成分)の値が,それぞれ8ビットずつ格納されています。このRGBはRed,Green,Blueの頭文字を取ったものです。プレビューフレームを取得するのは簡単です。例としてプレビューフレームをPhotoCamera.GetPreviewBufferArgb32メソッドでバッファーへ書き出しを行い,その後ピクセルデータを分離ストレージへ保存する簡単なコードをご紹介します。}}上記のコードを実行すると,ARGB32データが分離ストレージに書き出されているはずです。Toolを使ってデータを取り出してもよいのですが,ファイルヘッダも付いていないピクセルデータしかないファイルですので,Windowsに付属しているプレビューツールでは見ることができません。これでは,本当にプレビューフレームを取り出すことができているのか,確認することができません。取り込んだフレームに対してエフェクト処理を施し,画面上に表示するようにひとつ工夫してみましょう。BlendでXAMLを表示すると下図のようになります。中央の枠がImageコントロールですので,ここにエフェクト処理をしたプレビューフレームを表示させます。あとでエフェクト処理を掛けやすいように,PhotoCamera.GetPreviewBufferArgb32メソッドで取得したARGB32データを格納するクラスを作ります。画像の幅と高さ,それと画像データを格納するバッファがプロパティとしてあるだけの簡単なクラスを作成します。後ほどエフェクト処理を実装しますので,中身のないEffectSepiaToneメソッドを実装しています。カメラ著者プロフィール和田健司(わだけんじ)1982年10月12日生まれ。大阪で働くプログラマ。Mobileに傾倒し今に至る。Mobile向けのTipsを書いています。iPhoneアプリ開発を始めました。嫌いな食べ物はカレー。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。