AVIファイルを合成するソフトを作成しています。
その途中でソースとなるAVIファイルのサイズを知る必要性が出てきました。
WindowsXPでは、
http://www.geocities.jp/fjtkt/problems/2006_0019.html(個人様のサイトです)
こちらを参考にプロパティを取得することができたのですが、
同様の方法をWindows2000上で試した場合にうまくいきません。
とりあえずWindows2000のFMTIDなども探してみているのですが、
なかなか該当する情報を発見することができず・・・
どうやらWindows2000とXPではプロパティの管理方法が違うらしいのですが、
サイズプロパティの取得方法、もしくは情報を持っていらっしゃる方はいませんか?
Explorer >ファイルのプロパティ >概要 でサイズは表示されるので、
何らかの方法があると思うのですが。
サイズって何のサイズだろう?
FindFirst で取れるファイルサイズの事じゃないのかな?
演奏時間の事かな?メディアプレイヤーで取れたと思ったけど
Explorer >ファイルのプロパティ >概要 でサイズは表示されるので、
で表示されないんだよね・・・うちだと
> サイズって何のサイズだろう?
同感。
> Explorer >ファイルのプロパティ >概要 でサイズは表示されるので
これで表示される「サイズ」らしきものは個々の画像の幅と高さだけですよね。
取得する画像は1つでよいのかな?
それともすべてのビットマップのサイズチェックが必要なのかな?
後者だとコードが少し増えるだけですが。
画像のファイル名は事前にわかっているのかいないのか?
これも後者だとコードが少し増えるだけですが。
少し質問内容を誤解していました。
AVI の結合のために「AVIのサイズ」取得が必要なんですね。
でも、「画像の縦横サイズ」が「AVIのフレームサイズ」に変わるだけなのでしょうね。
Explorer >ファイルのプロパティ >概要 で表示されるサイズらしきものはやはり「イメージサイズ」しかないようですので。
もしそうであれば、私なら仕様が良くわからないShellオブジェクトなど使わず、AVIファイルから直接取得してしまいますが。
そのほうがオーバーヘッドも減り処理速度も速まりますし。
http://www.usagi-goten.com/jp/AVI_structure.html などを参考にすれば、取得メソッドの自作はそう難しくありません。
> Explorer >ファイルのプロパティ >概要 でサイズは表示されるので、
> で表示されないんだよね・・・うちだと
なぜでしょうね?
すいません、情報不足でした。
皆様ご指摘のとおり、プロパティで表示される『イメージ』カテゴリの『サイズ』です。
読み込むAVIファイルはすべてのフレームが同一サイズ(縦横)であることがわかっています。
さらにAVIファイルのファイル名も判明しています。
さどやまさんのアドバイスに従って、直接読み込むようにしてみます。
バイナリから読み込む方法で無事に解決しました。
ありがとうございました。
解決済みとさせていただきます
ツイート | ![]() |