【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

連載 .NETでWindowsアプリを作ろう

第1回 Google画像検索アプリを作ろう

デジタルアドバンテージ 遠藤 孝信
2005/06/25
Page1 Page2 Page3

 本連載では、ある程度実用的なWindowsアプリケーションを作成しながら、.NETでのWindowsプログラミングについて学んでいきます。具体的には、以下のような項目について解説していきます。

  • アプリケーションからWebページの取得
  • ユーザー・コントロールの作成
  • Windowsアプリケーションにおけるマルチスレッドの利用
  • プラグインの実装
  • Amazon Webサービス(Amazon E-Commerce Service 4.0)の活用、などなど

 また、連載は全4回で以下のような構成を予定しています。

第1回 Web画像検索ツールの使い方/Google検索結果の取り込み
第2回 サムネイル・ビューア・コントロールの作成
第3回 マルチスレッドを利用した画像検索ツール本体の作成
第4回 プラグイン形式でAmazon Webサービスに対応

 今回は、本連載を通じて作成する「Web画像検索ツール」を紹介し、まずGoogleのイメージ検索ページで検索した結果を取り込む部分をプログラミングしていきます。

Web画像検索ツール「WebImageSearch」

 皆さんはGoogleイメージ検索をよくお使いになるでしょうか。筆者はあるキーワードから連想される画像を探したり、気に入った映画俳優の画像を検索したりとけっこう頻繁に利用しています。

 しかし、Googleイメージ検索は検索結果が20件ずつしか表示されないため、ページの移動が面倒であり、またそのために一覧性に欠けるといった不便な点があります。そこで、そのフロントエンドとなるWindowsアプリケーションを作ってみました。それがこれから紹介するWeb画像検索ツール「WebImageSearch」です。

■WebImageSearchの使い方

 このツールの使い方は至って簡単です。アプリケーションを起動して、検索キーワードを入力し、[検索開始]ボタンをクリック(あるいは[リターン]キーを押せば)、検索結果となるサムネイル画像(小さな画像)がどんどん表示されていきます。次の画面は、このツールで「C#」というキーワードを検索しているところです。

Web画像検索ツール「WebImageSearch」の実行時画面
検索キーワードを入力し、[検索開始]ボタンをクリックすれば、キーワードにマッチしたサムネイル画像が表示される。

 このツールでは、できる限りたくさんのサムネイル画像を画面いっぱいに表示するようにしています。また、サムネイル画像のスクロール時には最小限の描画しか行わないようにしているため、快適な速度でスクロールできます。

 トラックバーのつまみ部分を動かすと、表示中のサムネイル画像がリニアに拡大/縮小されます。

トラックバーによるサムネイル画像の縮小
トラックバーのつまみ部分を動かすと、表示中のサムネイル画像がリニアに拡大/縮小される。

 すべての画像を取得し終わるか、[停止]ボタンをクリックするか、[ESC]キーを押すと、検索は終わります。検索された画像はマウスの左ダブルクリックで、そのオリジナルの画像をブラウザで表示します(元画像のURLをブラウザで開く)。また、右ダブルクリックでは、その画像が含まれているWebページを開きます。

 このツールはもともとGoogleのフロントエンドとして作成したものですが、現在のバージョンではWeb検索部分をプラグイン形式にし、Amazonでの商品検索やYahooオークションの画像も検索できるようにしました(しかし、Yahooオークションのプラグインはまだかなり改造の余地があります)。

 検索対象となるWebサイトは、画面左上隅のコンボボックスから選択可能です。

検索対象となるWebサイトを選択するためのコンボボックス
現在はGoogleイメージ検索、Amazon商品検索(DVDおよび和書のみ)、Yahooオークション検索に対応している。

■WebImageSearchのダウンロードとファイル構成

 WebImageSearchは以下のリンクからダウンロードできます(プロジェクトはVisual Studio .NET 2003用のプロジェクト)。

 取りあえずアプリケーションを試したい方は上記の「実行ファイルのみ」をダウンロードしてzipファイルを展開し、WebImageSearch.exeを実行してみてください。

 「実行ファイルのみ」のzipファイルに含まれている、アプリケーションの実行時に必要なファイル構成は次のようになっています。

WebImageSearch.exe (本体)
ThumbViewerControl.dll (サムネイル・ビューア・コントロール)
WebImage.dll (共通インターフェイス定義モジュール)
1WISGoogle.dll (Google用プラグイン)
2WISAmazon.dll (Amazon用プラグイン)
3WISYahooAuc.dll (Yahoo用プラグイン)

 WebImageSearch.exeは、実行時に同じディレクトリにあるプラグインのDLLファイル()を読み込みます。プラグインのファイル名は拡張子が「.dll」であれば何でもよく、ファイル名を変更することにより、コンボボックスで表示される順番を変更することができます(ここではGoogle用プラグインが最初に表示されるようにファイル名の先頭に「1」を付けています)。

 なお、今回はこのうちのをプログラミングしていきます。

■アプリケーションの構成

 WebImageSearchを構成するモジュールはおおよそ次の図のようになっています。

WebImageSearchを構成するモジュール群

 メイン・ウィンドウは、各プラグインを使ってWebページやXML Webサービス(Amazon用プラグインの場合)での検索を実行し、その検索結果を取得します。プラグインは共通のインターフェイスを実装しているため、メイン・ウィンドウがプラグインを呼び出す手順は統一されています。

 プラグインから検索結果(具体的には画像やWebページのURL)を受け取ったメイン・ウィンドウは、Webからサムネイル画像をダウンロードし、サムネイル・ビューア・コントロールに追加していきます。

 サムネイル・ビューア・コントロールはメイン・ウィンドウにより追加された画像を表示し、クリックされた画像のインデックス番号をメイン・ウィンドウに返すだけの独立した独自コントロールとなっています。

 

 INDEX
  .NETでWindowsアプリを作ろう
  第1回 Google画像検索アプリを作ろう
  1.Web画像検索ツール「WebImageSearch」
    2.Web画像用のWebImageクラスの作成
    3.Google用プラグインの作成
 
インデックス・ページヘ  「.NETでWindowsアプリを作ろう 」

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  直属上司が海外にいるのエンジニアに見る
【実例】場所に捉われないワークスタイル

  「仮想化工房」のマイスターが選んだのは
VMware、Hyper-V、そしてVirtageだった!

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?