読者リクエスト!(C++言語でカメラへアクセス)
桜も散って暖かくなると思いきや…
うみゅ~…さぶい。(4月1日時点)
一日一回、妻の前で放つ私の渾身のギャグはもっと寒いが気にしない。
困るのは私じゃない。…そう、妻だ。
ぴゅー~…。
こんな日は、あたたかいコーヒーでも飲んで
バシバシお仕事をするに限るッ!!
余談だけど、コーヒー用のマグカップを落として割ってしまったので
新しいマグカップを購入した。 なんとAmazonデザインだ!!(別にAmazonが大好きってわけじゃない)
結構大きいので、コーヒーをがぶ飲みする筆者にピッタリ♪
さて、仕事しようと気合を入れると、私のスマホが「ちゃらりーん」と鳴った。
見てみると、ITエンジニアの読者から。
「2013年に書かれたブログを見て、教えてほしいことがある」とのお問い合わせだ。
どうもありがたいこってす。
読者が見たブログというのは…
ふむふむ…。この記事でしょうか。
「WEBカメラで、こんなコトやあんなコト♪」
http://brog.eightprism.main.jp/?eid=23#sequel
カメラデバイスに、C++でアクセスして取得した映像をリアルタイムで
アスキーアートに変換して遊んでみたよ、っていう記事だね。確かに私が書いた記事だ。
「参考にしたいので技術一式欲しい」との依頼だが、申し訳ありませぬ。
弊社は既にSJIS環境から開発環境を完全にUnicode対応版に移行しており、過去の保守が必要なソースのみ
保管し、研究目的や遊びで作ったようなソースは処分しております。
そういうわけで、当時のものを丸ごと差し上げることができません。ごめんなさい!!
でも、最近は開発者の集まりなんかに行くと、やれPHPだAjaxだ、RubyだPhysonだ、、
とWEB系の話ばっかり。
メモリリークやスレッド処理のお話も出来ない、json?いやいやINIファイルでいいじゃん。
みたいな感じで話の輪に入れない…と嘆いておりましたが
まだまだ生息していましたか!!BCB5(C++)ユーザ♪
どうでもいい話だけど、JSONってコメントを書くのが一工夫いるのよ。
それって設定ファイルとして致命的だよねf^-^;
嬉しくなったので、簡単だけど考え方とサンプルコードを載せておきます。ご参考まで。
サンプルコード
1.vfw.hをインクルード
#include <vfw.h> をインクルード。
2.ハンドルを格納する変数を用意
HWND hWnd; 一応、コンストラクタでNULL初期化。
TForm内にTPanelを一個配置しておく。
3.デバイスへ接続
hWnd = capCreateCaptureWindow(
L”Captrue Window”, //キャプチャウィンドウの名前
WS_CHILD | WS_VISIBLE, //ウィンドウスタイル
1 , 1, //表示位置
Panel1->Width, Panel1->Height, //ウィンドウサイズ
Panel1->Handle, //親のハンドル
NULL
);
if (capDriverConnect( hWnd, 0 )) { //チャンネル1に接続
capPreviewRate( hWnd, 1 ); //プレビューレートの設定
capPreview( hWnd, true ); //プレビューモードで動作
ShowMessage(“カメラデバイスに接続したよん”);
}
4.デストラクタでドライバの解放
if (hWnd) capDriverDisconnect(hWnd);
かなり端折ったけど、概ねこんな感じになるかと。
※BCB5だったら、capCreateCaptureWindowの第一引数にLは不要。
環境によっては動かないかもしれないが、その辺はご自身で工夫して頂きたい。
—————————————————————–
そういえば、最近の業務依頼はやたらWEB系の話が多い。
これも時代かのぅ…。