ピクチャボックスにTGAファイルを描画するには – プログラミング – Home

ピクチャボックスにTGAファイルを描画...
 
通知
すべてクリア

[解決済] ピクチャボックスにTGAファイルを描画するには


Air
 Air
(@Air)
ゲスト
結合: 21年前
投稿: 33
Topic starter  

はじめまして、Air と申します。
開発環境は、Windows XP, VC++6.0 MFC です。

ただいま作っているプログラムで
ピクチャボックスにα付きTGAファイルの画像を描画しようと思っています。
TGAファイルのフォーマットまでは調べたのですが
そこからどのようにすればよいか迷っています。

漠然とした質問で恐縮ではありますが
良きアドバイスを頂けますでしょうか?
よろしくお願いいたします。


引用未解決
トピックタグ
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

TGAのフォーマットをBitmapに展開してくれるライブラリでも
あれば話が早いでしょうが、そういうライブラリが無いのであれば、
自前でファイルを読み込んでBitmap形式に展開しなくては駄目だと思います。
ファイルに格納されている画像データが圧縮されていれば、それを展開する
必要もあります。いずれにせよ、TGAのフォーマットを把握する以外に
色々な知識が要求されると思います。
少なくとも格納されているデータが非圧縮だったとして、その画像データを
Bitmapに展開できる程度の知識は必要でしょう。
ですから、Bitmapの構造についても理解していないと無理ですね。
その上で圧縮の展開方法に関する知識がいるでしょうし、
αブレンドするならそちらの知識も必要になると思います。
ライブラリが無い状態であれば、かなり泥臭い作業になると思います。

Airさんのプログラミングの経験とか知識がどの程度あるのかわかりかねますが、
ここに書き込んだ内容を読んである程度は処理の検討くらいはつかないと
道のりは厳しいと思います。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> TGAのフォーマットをBitmapに展開してくれるライブラリ
Susie プラグインがあるようです。
「IFTGA」でぐぐってみてください。

ただし、Susie プラグインは 24bit DIB を返すのが一般的なようですので、
アルファブレンドまではしてくれないと思います(してくれるプラグインがないとは言
い切れませんが)。


返信引用
Air
 Air
(@Air)
ゲスト
結合: 21年前
投稿: 33
Topic starter  

PATIOさん、シャノンさん > ご意見ありがとうございます。

このTGAファイルは実質的な使い方はテクスチャにと考えています。
ピクチャボックスに表示するのは、テクスチャのリストみたいな物を
ユーザーに見せたいと考えてのことです。
なので、読み込み等はできれば自前でいきたいわけで、というか
いかなければいけないのですが。。。

とすると、実質的な作業は

TGAファイルを読み込む
  ↓
メモリ上にビットマップを作成しそこに展開 (この時α値は無視になるんでしょうか?)
  ↓
そのビットマップをピクチャボックスに描画

ということになるんですかね。
いずれにせよ、ビットマップの知識は必須ですね。

まだまだ苦戦しそうなので、いろんな意見をお聞かせいただけると助かります。
よろしくお願いします。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

Susie プラグインがどのようなものだとお考えかは存じませんが、
α値のことを抜きにして考えるならば、

> TGAファイルを読み込む
>   ↓
> メモリ上にビットマップを作成しそこに展開 (この時α値は無視になるんでしょう
か?)
>   ↓
> そのビットマップをピクチャボックスに描画

このどこに支障をきたすのかわかりません。問題ないように思えますが。

で、

> メモリ上にビットマップを作成しそこに展開 (この時α値は無視になるんでしょう
か?)

これですが、ビットマップもα値を持つことはできます。
BITMAPV4HEADER 以降のバージョンのビットマップを使ってください。

α値を正常に認識して V4HEADER を返してくれる Susie プラグインというのも、相当レ
アな気がしますが。
#そういう Susie プラグインを探して使うことにこだわっているわけではありません


返信引用
Air
 Air
(@Air)
ゲスト
結合: 21年前
投稿: 33
Topic starter  

シャノンさん >
 す、すいません、何か無視したみたいになってしまって。
 不快な思いをされたなら、心底お詫び申し上げます。

「IFTGA」で検索してみましたところ、数件ヒットいたしました。
ただ、私がプラグインというものを使用した事がないので
どういうものかあまり理解しておりません。
これをプログラム上で使うというのはどういうことなのでしょうか?
( ソースを抜き出して組み込むということですか? )
その辺りを詳しく教えていただけるとありがたいです。

失礼な事をした上での質問で恐縮ですが
よろしくお願いいたします。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

お気になさらずに。気分を害したわけではありません。
むしろ、これから俺が言うことで Air さんが気分を害されないかとヒヤヒヤ。

IFTGA でぐぐると、こんなページ
http://hp.vector.co.jp/authors/VA014406/
見つかるかと思いますが、ここの VC++ から Susie プラグインを使うサンプルがありま
す。
といってもこれは高度にクラス化されたものですので、もっと基本的な使い方を知りた
い場合は、LoadLibrary / GetProcAddress について調べてみてください。

で。
Susie プラグイン Susie プラグインとしつこく言っておきながら、α値まで正常に扱っ
てくれるプラグインがあるかどうかは疑問であります。


返信引用
Air
 Air
(@Air)
ゲスト
結合: 21年前
投稿: 33
Topic starter  

ご返答ありがとうございます。

早速このサンプルソースを見てみようと思います。
更に質問が発生した場合は、また改めて書き込ませていただきますので
その折は、よろしくお願いします。

本当にありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました