[[20060404213821]] 『エクセルVBAでPNGを取り込むと同時にサイズ[ピクメx(くれまちす) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルVBAでPNGを取り込むと同時にサイズ[ピクセル]を取得』(くれまちす)
 PNGファイルを順番に取り込みエクセルに貼り付けるところまではできたのですが、
 そのPNGのデータを取得する方法を知っている方、教えて下さい。
 欲しいデータは幅と高さです。
 「○ドット×○ドット」というピクセルの単位で取得したいのです。
 よろしくお願いします。

 選択した画像データの高さ・幅は下記のプロパティに格納されてます。
 高さ:Selection.ShapeRange.Height
 幅:Selection.ShapeRange.Width

 但し、格納されている数値は、単位がポイントですので、ピクセルにするには変換が必要です。
 変換方法は、下記のよくある質問を参照して下さい。
https://www.excel.studio-kazu.jp/tips/0015/
 但し、ピクセルは長さの単位ではありません(フォントにより変化する)ので、利用時には注意が必要です。
http://hp.vector.co.jp/authors/VA016119/sizemmqa.html  (wkj)

wkj様

 丁寧なお返事ありがとうございます。
 説明不測で申し訳ありません。

 私が欲しいのは、元の画像のピクセルサイズで、
 貼り付けた画像のピクセルサイズではないのです。
 できればポイントを取得してピクセルに変換、ではなく、
 PNGのヘッダからサイズを取るようなことをしたいのです。

 ポイントからピクセルへの変換を行う場合、
 下記の表の↑部分はパソコンによって値が異なってしまいますよね?

 PNG名     |画像|幅  |高さ|
 ----------+----+----+----+
 circle.png|●  |24  |24  |
 star.png  |★  |20  |40  |
                 ↑   ↑


 勘違いしてました。済みません。

 >PNGのヘッダからサイズを取るようなことをしたいのです。
 EXCELでやろうとすると、pngファイルをテキストとして読み込んで、ヘッダー情報から取り出せば何とかなるかも知れません。
 但し、pngのヘッダーのレイアウトが分かってないとマクロが組めませんし、Webで検索した限りではC言語で書かれているようです。

 ↓この辺りのページが参考になるかと思います。
http://www5.cds.ne.jp/~kato/png/#program_reading
http://mist.suenaga.cse.nagoya-u.ac.jp/document/png_8h-source.html  (wkj)

 VBですが。
http://kone.vis.ne.jp/program/#sample32
(みやほりん)(-_∂)b

 wkj 様
 ありがとうございます。
 ヘッダー情報から取り出す、というのがうまくいかなかったので、質問させていただいたのですが、
 貼り付けて下さったHPを参考になんとか作ってみたいと思います。
 取り急ぎお礼コメントを記入させていただきます。

 みやほりん様
 ありがとうございます。
 PNGだけでなく色んな画像のサイズが取り出せそうですね。
 まだ試していませんが、参考にさせていただきます。
 取り急ぎお礼コメントを記入させていただきます。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.