SeaGate Blog
本館 別館 ブログ
プロフィール
スポンサーサイト
SeaGateコレクション



アーカイブ
ブックマーク
カウンター
合計: 1440633
本日: 228
昨日: 331
コントロールパネル
BROACHのアカウントをお持ちの場合、こちらからログインして下さい

RSS



Powered By
プロバイダーぷらら | Broach v1.3.2 (1522)

Visual Studio 2008

Professional Editionを開発用のPCにインストールしました。これで、一つのPCにVisual Studio 6.0、Visual Studio .NET 2003、Visual Studio 2005、Visual Studio 2008の4つの開発環境が共存する事態に...(^^ゞ Visual Studio 2008では、.NET Framework 2.0、.NET Framework 3.0、.NET Framework 3.5の3つのバージョンの.NET Frameworkをサポートしているとのことなので、Visual Studio 2005で作成したプロジェクトがうまくVisual Studio 2008に移行できたら、Visual Studio 2005はアンインストールしたいです。

で、Visual Studio 2008ですが、まだ、全然触っていませんけど、普段はHTMLエディタとしてAdobe Dreamweaverを使っているので、Visual Studio 2008でもASP.NET/HTMLエディタでソースコードとデザイン画面を上下に分割して同時に表示してくれるのはありがたいです。他にも強力な機能がテンコ盛りのようですが、時々プログラマなので、少しずつ慣れていければと...

ところで以前、PDFファイル、JPEG画像などに埋め込んだXMPメタデータ利用した文書・画像管理システム(というより検索システム)を社内用に作成したと書きましたが、その顛末を某電機メーカーのユーザー論文に応募したところ、見事(^^ゞ入賞し、15万円をGETしました。ここのところEee PCを買ったりしているのは、実はそのせいだったりします。(^^ゞ

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2008.2.21 | コメント (3) | トラックバック (0) | リンク (0) | ▲TOP

JPEGファイルのXMPメタデータ取得(その後)

ちょっと前の記事で.NET Framework 3.0開発環境を構築したと書きましたが、その理由の一つが、これも以前書いた画像管理システム(というより検索システム)で写真のスキャン時にJPEG画像に埋め込んだXMPメタデータを取得して検索用のインデックスを作成するためでした。

現在実装している取得方法はとにかく力技なのですが、WPFアプリケーションで使用するために.NET Framework 3.0で追加されたSystem.Windows.Media.Imaging名前空間のBitmapMetadataクラスを使用すれば、EXIFやXMP、IPTCメタデータの取得や設定を簡潔に記述できます。

で、XMPメタデータを取得するには、WindowsBaseとPresentationCoreに参照設定し、以下のように記述すればOKのようです。

using System.Windows.Media.Imaging;

Stream jpegStream = new FileStream(@"hogehoge.jpg", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
JpegBitmapDecoder jpegDecoder = new JpegBitmapDecoder(jpegStream, BitmapCreateOptions.None, BitmapCacheOption.None);
BitmapMetadata bitmapMatadata = (BitmapMetadata)jpegDecoder.Frames[0].Metadata;
System.Diagnostics.Debug.WriteLine(bitmapMatadata.Title);
System.Diagnostics.Debug.WriteLine(bitmapMatadata.Comment);
jpegStream.Close();

Windows VistaならOS標準でこのようなメタデータの取得・設定ができるので、WindowsフォトギャラリーやAdobe Photoshop Elementsの写真整理モードなどの画像管理ソフトの相互運用が楽になり、比較的安心して画像にメタデータを埋め込むことができるようになってきました。ここではMicrosoftとAdobeは喧嘩しなかったんですね。(^^ゞ

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2007.7.30 | コメント (0) | トラックバック (0) | リンク (0) | ▲TOP

Microsoft Technical Briefing 2007

昨日はMicrosoft Technical Briefing 2007に行ってきました。Windows Vistaも2007 Office systemもリリースされたので、開発ツールの出遅れが目立ってきました。私の方は以前ASP.NET 1.1ベースで作成した画像管理システム(もどき)をAJAX化しようとMicrosoft AJAX Library、ASP.NET 2.0 AJAX Extensions、ASP.NET AJAX Control Toolkitをインストールしていろいろと試し始めました。しかし、ASP.NET AJAX以前にASP.NET 2.0への移行で開発スタイルの違いやら何やらで苦しみ、ようやくVisual Studio 2005とASP.NET 2.0に何とか馴染んできたところなので、開発ツールの出遅れもへったくれもないんですけどね。(^^ゞ

私のような素人プログラマにはASP.NET AJAX Control Toolkitは簡単で便利です。新しいコントロールも少しずつ追加されていっていますし、ライブデモを試しながらこんな風に使ってみたら面白そうとか考えたり...とても簡単にAJAXア風のプリケーションができてしまうので、意味もなく使ってしまいそう。もっとも、内部の動作がよくわからないまま使っているので、期待したような動作にならなかったり、いかにも危なっかしいことをしているのではないかという気がする時もありますが。(^^ゞ

The Official Microsoft ASP.NET AJAX Site
>> トップページ
>> Control Toolkit

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2007.3.7 | コメント (0) | トラックバック (0) | リンク (0) | ▲TOP

Microsoft Photo Info

Microsoft続きですが、"Microsoft Photo Info"というWindowsエクスプローラのアドオンソフト(英語版)が無償公開されました。"Microsoft Photo Infoは"Windowsエクスプローラで画像ファイルのExif情報をツールチップや詳細表示として表示できるようにするアドオンソフトで、JPEGやTIFF、キヤノンやニコンのデジタルカメラのRAW形式画像、マイクロソフトが開発した次世代画像形式の"HD Photo"などに対応しているとのこと。

個人的にありがたいのは、Windowsエクスプローラの右クリックでIPTC(国際新聞電機通信評議会)メタデータの追加や編集ができることです。下の記事にも書いた画像管理システムうんぬんかんぬんでは、画像の管理にIPTC/XMPメタデータを利用しており、メタデータの一覧や修正などには主にPixVueを使用していましたが、Microsoft純正のソフトでも可能になることでより一層安心感が増します。

なお、"Microsoft Photo Info"の動作対象OSはWindows XP/Vistaで、.NET Framework 2.0が必要です。

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2007.1.25 | コメント (0) | トラックバック (0) | リンク (0) | ▲TOP

ASP.NET AJAX 1.0

ASP.NET AJAX 1.0が正式公開されたようです。以前書いた画像管理システムうんぬんかんぬん以来プログラミングからは遠ざかっていましたが、試してみたいなぁ...でも、時間的にしばらくは無理かな? もう少ししたら日本語のリソースも増えるだろうから、それまで情報だけは収集しておこう。

それから、少し前にMicrosoft Expression Blend(旧Expression Interactive Designer)のベータ1も公開されていますね。2月16日には先頭を切ってExpression Webがリリースされる予定ですが、MIcrosoft Expressionシリーズはちょっと楽しみな感じです。

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2007.1.24 | コメント (0) | トラックバック (3) | リンク (0) | ▲TOP

Thumbs.dbファイルから画像を抽出する

またまた画像管理システムです。検索結果をASP.NETのDataGridコントロールを利用して、プロジェクト番号や写真のキャプションなどを表形式で表示するようにしたわけですが、単なる表だけでは寂しいのでサムネイル画像のようなものが表示できないかと思っていました。しかし、画像一枚あたりのファイルサイズが数メガバイトあり、リアルタイムでサムネイルを作成して表示するのは現実的でないし、事前に作成するというのも面倒でメンテナンスも大変です。

そこで考えたのがThumbs.dbファイルの利用です。Windows XP/Server 2003では、エクスプローラでフォルダの表示形式を写真か縮小版にするとフォルダ内の画像をサムネイル表示してくれますが、この時Thumbs.dbという名前のキャッシュファイルが作成されます。で、このThumbs.dbファイルから縮小画像を取り出す方法はないかと検索してみましたが、みんなThumbs.dbファイルが嫌いなのか(^^ゞ、削除する方法やら作らない方法ばかりで利用するという話はなかなか見出せません。が、ついにThumbs.dbファイルから画像を抽出するC#用のライブラリ"ThumbDBLib"を見つけました。

前置きが長いですが、このThumbDBLibを使うと、間単にThumbs.dbファイルから画像を抽出することができます。テキストボックス(textBox1)、ボタン(button1)、ピクチャーボックス(pictureBox1)、リストボックス(listBox1)が貼り付けられたWindowsフォームから利用する場合は以下のような感じになります。とっても簡単です。実にありがたいことです。ソースも公開されています。(もっとも中身はぜんぜんチェックしていませんけど...)

using ThumbDBLib;

private void button1_Click(object sender, EventArgs e)
{
  listBox1.Items.Clear();
  th = new ThumbDB(textBox1.Text);
  string[] fs = th.GetThumbfiles();
  listBox1.Items.AddRange(fs);
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  Image i = th.GetThumbnailImage(listBox1.SelectedItem.ToString());
  pictureBox1.Image = i;
}

縮小画像を事前に作成しておくことに変わりはありませんが、エクスプローラで写真か縮小版表示にするだけでWindowsが勝手に作成してくれるので、便利というか楽チンです。実際の画像管理システムではマウスオーバーするとポップアップウィンドウ上にサムネイル画像が表示されるようにしています。サムネイル画像のサイズが小さいので結構ストレスなくWeb上で表示できています。Windows VistaにはThumbs.dbファイルがあるのかないのかよく知りませんが、まぁ、当面サーバOSを更新する予定はないのでいいかな...と。(^^ゞ

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2006.11.28 | コメント (0) | トラックバック (0) | リンク (0) | ▲TOP

画像管理システムの概要

以前から製作を進めてきていた社内イントラ用の画像管理システムですが、大体以下のような仕組みとなりました。

管理したいのは写真をスキャンしたJPEG画像とPDF文書で、それぞれスキャン時、作成時にPhotoshop (Elements)、Acrobat Std./Pro.でプロジェクトの名称や写真のキャプションなどの管理・検索に必要な情報をIPTC/XMPメタデータ(ファイル情報)として埋め込む。また、既存の画像のメタデータの一覧・修正などにはPixVueを使用する。

JPEG/PDFファイルに埋め込んだIPTC/XMPメタデータとPDFファイルの本文テキストは、自作のメタデータ取得プログラムで一括して読み取り、ファイルサーバ上のロケーション情報などを加えたインデックスとしてCSVファイルに書き出す。書き出したCSVファイルは画像管理用のデータベース(SQL Server 2000)にインポートする。

Windows Server 2003+IIS 6.0+ASP.NET 1.1で作成した検索用Webアプリケーションから上記データベースにアクセスし、IPTC/XMPメタデータおよびPDFファイル中の本文テキストを検索キーワードとして、該当するJPEG画像やPDF文書が検索・表示できるようにする。

とまぁ、こんな感じです。いろいろと課題はありますが、画像ファイル自身に自己記述型のメタデータを持たせることによってデータが矛盾を起こさないよう管理できるところが今日的といえば今日的かなと。あと、検索用WebアプリケーションがいかにもASP.NETのDataGridで作りました...というようなUIなので、ちょっとしたスパイスを加えるべく考え中です。

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2006.11.14 | コメント (0) | トラックバック (0) | リンク (0) | ▲TOP

PDFファイルのXMPメタデータ取得

画像管理システムの続きです。JPEG画像、PDF文書に埋め込んだXMPメタデータを読み取ってインデックス化するための方法をいろいろと試行錯誤しましたが、取り敢えず以下のような方法で行うことにしました。XMPメタデータ読み取りプログラムはいずれもVisual C# 2005で作成しています。

PDFファイルは、初めはAcrobat 7.0 Pro.のActiveXオートメーションを利用して読み取ろうとしたのですが、200ファイル程度処理したところで応答しなくなりどうも安定しません。そこで、iTextSharpというオープンソースのライブラリを利用して読み取ることにしました。で、XMPメタデータは以下のような感じのソースコードでほぼ完璧に読み取ることができるようになりました。

using iTextSharp.text;
using iTextSharp.text.pdf;
...
PdfReader pr = new PdfReader(filename);
string title = (string)pr.Info["Title"];
string subject = (string)pr.Info["Subject"];

本文のテキスト情報もインデックス化したかったのですが、iTextSharpで本文中のテキストだけを抽出する方法がよくわからず、これに関してはxdoc2txt.exeというPDFファイルなどのバイナリ文書からテキスト要素を抽出する汎用テキストコンバータを外部プロセスとして起動し、以下のような感じのソースコードで標準出力から読み取るようにしました。

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "xdoc2txt.exe";
p.StartInfo.Arguments = "-o=0 -o=1 " + filename;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
string text = p.StandardOutput.ReadToEnd();

JPEGファイルについては次回に...(^^ゞ

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2006.11.11 | コメント (0) | トラックバック (0) | リンク (0) | ▲TOP

PixVue

久しぶりですが、画像管理システムその後です。写真をスキャンしたJPEG画像にIPTC/XMPメタデータを埋め込んで管理したいわけですが、スキャン時にPhotoShop (Elements)で1枚1枚メタデータを埋め込むとどうしても誤記や表記のゆれが起こります。メタデータをざっと一覧表示して、間違いをその場で修正できれば楽なので、いろいろと画像管理ソフトを探しましたが、なかなかフィットするものが見つかりませんでした。

で、以前窓の杜のNEWSで見た"PixVue"を思い出し、テストしてみました。実はPixVueは以前試したことがあるのですが、画像ファイルのアイコンに変な(^^ゞ マークが付いたりしてその時はあまり気にいらなかったのです。

PixVueをインストールするとWindowsエクスプローラのコンテキストメニューに"PixVue"と"Annotate"が追加され、IPTC/XMPメタデータの追加、編集、削除等ができるようになります。また、フォルダの詳細表示でもメタデータのフィールドが追加でき、メタデータを一覧で見るにはうってつけです。さらにWindowsの検索機能も拡張され、メタデータに含まれる語句も検索対象とすることができるようになります。

何よりもうれしいのは、英語版のソフトウエアながら日本語のタグデータがちゃんと扱えるということです。今まで試したものは日本語がおかしくなってしまうものが多かったので。Photoshop (Elements)との相互利用も(今のところ)問題ないようですし、考えている用途にはピッタリです。最終的には何らかの画像管理ソフトがほしいわけですが、当面はこのソフトでJPEG画像のメタデータの管理をしていこうかな...と思っています。

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2006.11.8 | コメント (0) | トラックバック (0) | リンク (0) | ▲TOP

またしてもハードディスクがクラッシュ(;_:)

会社のパソコンのハードディスクが壊れました。3ヶ月ほど前に壊れて換装したばかりの新しいハードディスクなのにです。(;_:) 前回は何となく予兆を感じていたのですが、今回は忙しかったのと新しいハードディスクであるという安心感、そして何より予兆を感じていなかったので油断しておりました。

それでもムシが知らせたのか、2~3日ほど前に主だったファイルはバックアップしていました。とは言え、この2~3日は、以前から取り組んでいる画像管理システムのインデキシングを行うプログラムを作っているところだったので、結構な痛手です。検索部分はWebアプリケーションなのでサーバにソースが残っており、救われたのですが...

今年は本厄だからなぁ...今のところ家族にも体にも特に異常はないので、パソコンが災いを引き受けてくれているのだと考えれば良いのかも。でも、そのお蔭で5年落ちのパソコンを社内で最速クラスのマシンに取り替えてもらえた上、ディスプレイも一回り大きくなったし、それはそれでありがたいことです。(^^ゞ

このエントリーをはてなブックマークに追加  Clip to Evernote  Spring it! 
SeaGate: 2006.10.7 | コメント (2) | トラックバック (0) | リンク (0) | ▲TOP
inserted by FC2 system