CPictureHolderクラスを使って画像サイズを取得するには?

[戻る]
困ってます 2015/09/09(水) 15:42:30
画像ファイルパスから、その縦横サイズをピクセル単位で取得したいのですが、どうした
らいいのでしょうか?

以下のような方法でできるのかと思ったのですが、どうもピクセル単位を26.45875倍した
値が取得されてしまいます。
「26.45875で割る」というのも手ですが、このマジックナンバーの正体も取得方法も不明
なので、それはやりたくありません。

    CPictureHolder    *pPicture;
    LONG x,y;

    FileName ← 画像ファイルパス
    pPicture = GetPicture(FileName);
    pPicture->m_pPict->get_Width(&x);
    pPicture->m_pPict->get_Height(&y);

CPictureHolderで取得した画像を、その縦横比を保持したまま縮尺だけ変えて表示させた
い
ということをやりたいのです。

よろしくお願いします。

瀬戸っぷ [E-Mail] 2015/09/09(水) 17:24:49
>このマジックナンバーの正体も取得方法も不明

http://mkubara.com/index.php/JPEG%E3%83%BBGIF%E7%94%BB%E5%83%8F%E3%81%AE%E6%93%8D%E4%BD%9C

ということでDPIに依存しそうですな。


http://www.crimson-systems.com/tips/t036e.htm

で、「HIMETRIC サイズを OLE からピクセル数に変換」というのがあるようですので参考
にされてはどうでしょう?

困ってました 2015/09/11(金) 15:29:13
[[解決]]
http://www.crimson-systems.com/tips/t036e.htm
こちらを参考に実装しました。

瀬戸っぷさま、ありがとうございました。

古いスレッドには追加発言できません。