画像ファイルの属性

[戻る]
ひでまろ 2003/10/27(月) 17:03:02
ファイルを開くダイアログは使用せずに画像ファイルを直接参照し
画像ファイル(.TIF,.BMP)の幅、高さ、解像度を取得したいのですが
どのようにすればよいでしょうか?

SunPac 2003/10/27(月) 17:13:25
GDI+を使えば簡単です。
Imageオブジェクトのコンストラクタにファイル名を指定して、
Imageクラスのメンバ関数のGetWidth()やGetHeight()で得られます。
解像度はGetPixelFormat()だったかな?
GDI+で検索してサンプルを参照して下さい。
全部英語ですけどね・・・

ひでまろ 2003/10/27(月) 17:36:48
すいません。 
使用言語はVC++ 6.0 です。
GDI+ってVC++ 6.0でも使用可能なのでしょうか?

SunPac 2003/10/27(月) 17:42:19
可能です。
サンプルみましょう。

SunPac 2003/10/27(月) 17:43:24
おっと、忘れてました。
OSはWinXPか2000です。98はごめんなさい。

ひでまろ 2003/10/27(月) 17:54:13
Win2000です。(^^)
CBitmapクラスを使うことになりますかね・・・・
ファイルは、TIFなんですけど解像度等は問題ないですよね?

SunPac 2003/10/27(月) 18:00:18
Win2000ならGDI+はOKですね。
Imageクラスの引数はファイル名で、CBitmapクラスは必要ありません。
あと、TIFFはサポートされております。
解像度もOKなはず。

・・・もしかしたらPlatformSDKからダウンロードする必要があるかもしれませんが、
とりあえずサンプル(GDI+、Imageをキーワードにして検索)見ましょう。
わかってしまうととても便利ですよ。
アンチエリアスなんかも簡単にかけられるし、透明度も指定できますし。

ひでまろ 2003/10/27(月) 19:43:35
サンプルが見れません・・・・
MSDNのCDがここにないのです・・・・

euro2004 2003/10/28(火) 08:58:34
MSDNライブラリはwebでも見れます。


googleで「GDI+」で検索かけました(全言語)。
(↓↓なぜか途中で改行されてるのでうまくアドレスのところにコピペしてください。)

http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/gdicpp/GDIPlus/GDIPlus.asp


あと、他の掲示板ですが・・・
http://forums.belution.com/ja/vc/000/115/55.shtml

SunPac 2003/10/28(火) 12:57:01
補足です。

まず、GDI+はGDIPLUS.LIBとGDIPLUS.Hが必要です。
もしたいのでしたら、euro2004さんが書いてくれたMSDNからダウンロードしましょう。
もちろん無料です。
あとはサンプルを参考にして下さい、といいたいのですが、一応ヒントを。
まず、GDI+を使うための初期処理として、

    GdiplusStartupInput gdiSI;
    ULONG_PTR gdiToken;

    GdiplusStartup(&gdiToken, &gdiSI, NULL);

とする必要があります。
あと普通は、

SunPac 2003/10/28(火) 12:57:14
補足です。

まず、GDI+はGDIPLUS.LIBとGDIPLUS.Hが必要です。
もしたいのでしたら、euro2004さんが書いてくれたMSDNからダウンロードしましょう。
もちろん無料です。
あとはサンプルを参考にして下さい、といいたいのですが、一応ヒントを。
まず、GDI+を使うための初期処理として、

    GdiplusStartupInput gdiSI;
    ULONG_PTR gdiToken;

    GdiplusStartup(&gdiToken, &gdiSI, NULL);

とする必要があります。
あと普通は、

SunPac 2003/10/28(火) 12:57:11
補足です。

まず、GDI+はGDIPLUS.LIBとGDIPLUS.Hが必要です。
もしたいのでしたら、euro2004さんが書いてくれたMSDNからダウンロードしましょう。
もちろん無料です。
あとはサンプルを参考にして下さい、といいたいのですが、一応ヒントを。
まず、GDI+を使うための初期処理として、

    GdiplusStartupInput gdiSI;
    ULONG_PTR gdiToken;

    GdiplusStartup(&gdiToken, &gdiSI, NULL);

とする必要があります。
あと普通は、

SunPac 2003/10/28(火) 12:58:54
すみません。マルチポストしちゃいました。

普通は
using namespace Gdiplus;
とします。

ああ、スペース連打でマルチポスト・・・

ごめんなさい。

ひでまろ 2003/10/28(火) 14:55:38
GDI+はGDIPLUS.LIBとGDIPLUS.HとGDIPLUSは、入手できました。
コンパイルをかけると
GdiplusInit.h(32) : error C2065: 'ULONG_PTR' : 定義されていない識別子です。
と出ます。
やはり、PlatformSDKのCORE SDK をダウンロードしなければならないので
しょうか?

ひでまろ 2003/10/28(火) 15:47:45
PlatformSDKのCORE SDK のダウンロードが上手くいきません・・・
高速回線の場所に移動するしかないみたいです。

SunPac 2003/10/28(火) 18:18:59
それはGDIPLUS.H自体が他のヘッダーファイルをインクルードしている
からでしょう。
WINDOWS.Hみたいに。
私はISDN回線で数日かけて落としましたよ(笑)
1晩1ファイル・・・

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