【Album】の(1)でVersion 1.0が完成、と書きましたが、その後ブログを書きながら実際に使ってみて動作試験を行い、使い勝手を改善する為の改良などを行い、本日に至りました。

 

mp4やmovファイルが最初読み込めなかったDirectShowと違い、GDI+は比較的簡単に必要な機能を特定して学習出来ましたが、数十のオーバーロード関数から必要なものを選んだり、表示の仕方をどうするか悩んだりしました。その中でも一番ショッキングだったのは矢張り「画像を読み込むと原因不明で落ちる現象(注)」で、プログラミング上の一番の悩みはスマホ画像が数十に増えると動作が重くなることでしたね。

注:「【バグは続くよ、何処までも】アルバムソフト-バグとの闘い」「【バグは続くよ、何処までも】その後...一応のピリオッド」参照

 

しかし、「紙ファイルのアルバムをめくり、写真をじっくり見る感覚」を基本仕様として、

(1)GDI+の対象とする静止画像を写真に見立てて、紙のアルバムを再現する

(2)処理スピードの遅さは画像ファイルのサイズ調整で対処する

という所期の目的と成果は何とか達成できたんじゃないかな、と思います。

 

実際に自分の料理や旅行の「写真」でAlbumを使いましたが、その際の所感を以下に述べます。

 

(1)Albumは「デジタルデータを迅速に、効率よくササっと処理する」のとは対極のソフトです。「(面倒だから避けていたのですが)決心して、PC内を整理し始め、自動作成されてよく分からないファイル名の画像ファイルを開いて『あー、あの時の写真だったのかぁ』と思わず整理の手を止めて眺めてしまい、ファイル名を(プロパティの撮影日時を確認して)自分の言葉で付け直して、ドラッグアンドドロップで放り込む」ような、アナログでレトロなソフトですね。(できればDirectShowで好きな昭和の楽曲をプレイリストで掛けて、コーヒーなんざ飲みながら、というのがもっと良いですが。)

 

(2)そういう意味でAlbum自体には「画像ファイルをドラッグアンドドロップ」し、写真の順番などの編集はFileListの並べ替え機能で行うのは(紙ファイルのアルバムでは並べ替えなんて大変な作業ですからまずしませんし)正しい選択だったんだろうと思います。

 

(3)表示を「サムネイル表示」と「標準表示」の2モードにし、サムネイル表示は「余り色々なことができずに単にページをめくるだけ(「次へ」ボタン)」のアルバム感を出し、単一写真の標準表示で「いつの写真だったろうと確かめたり(写真の詳細情報-右クリックポップアップメニュー以下同じ)」、「裏に当時の思い出をメモ書きしたり(写真の裏書編集)」、「横になっていた写真を縦に直して(回転表示)」、「アルバムに入れなおしたり(サイズ変更画像の保存)」することで、紙ファイルのアルバムを扱っている感じが出たんじゃないでしょうか?

 

(4)「サムネイル表示」の処理の重さはファイルサイズの変更で解消できますが、どこまで縮小するかの処理は扱っている写真によるんじゃないでしょうか?ということで標準表示の際に単一が同ファイルを「横になっていた写真を縦に直して(回転表示)アルバムに入れなおす(サイズ変更画像の保存)」ことでまず画像ファイル原本の整理をし、全体のサイズをそろえるには「ツール」の「アルバム写真をフォールダーにまとめる」で保存場所が様々なファイルを一つのフォールダー内にコピーし、「ツール」の「Resizer」をつかって「(例えば)長い方の一辺を960ピクセルにする」などとして3,200 x 4,000とか3,200 x 2,400とかの大きいファイルを縮小すると取り扱いに便利です。(例として、親族や友人といった何度かの旅行のファイルでその人が写っている画像をメモリースティックかSDカードに纏めて渡すような場合を想像してください。)

 

(5)しっかし、今でも合点がいかないのは「プロパティダイアログの日付をコピーして貼り付けると、数字が'?'(ASCII 0x3E)で挟まれること」です。今回の動作試験でも、「ファイル名を(プロパティの撮影日時を確認して)自分の言葉で付け直して」でコピペすると矢張り「?yyyy?年?mm?月?dd?日」となります。「詳細」の"yyyy/mm/dd"のデータをコピーしようにも、これはMCコントロールのデータで文字としてコピーできません。どうにかならないものでしょうかね?

 

いずれにしても、そんなことで私は昔の旅行写真アルバムや料理写真アルバム(↓)に裏書を付けて楽しんでいます。

 

 

ps. そんなこんなことを言っていたら、昨日即落ちしました。理由はやはりサムネイルの表示で「サムネイルサイズがウィンドウクライアント領域よりも大きいと列、行計算でDiv. by zeroエラーが発生する」ことでした。そんなことで、公開済コードも一部赤字修正を入れました。ご確認ください。まぁ、こういうことは使ってみないと分からないねぇ。

【修正】

【Album】Albumcpp、Album.hとUser.h~(7)

【Album】CALBUMの概要~各論(定義部)~(5)