• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DXライブラリの透過処理について)

DXライブラリの透過処理について

このQ&Aのポイント
  • #DXライブラリ #透過処理 #ペイント #PNGファイル形式
  • DXライブラリを使用してmura.pngの透過処理を行おうとしていますが、うまくいきません。Win10のペイントで作ったpngファイル形式に対応していない可能性があります。原因を教えてください。
  • DrawGraph関数の引数に渡しているmura.pngの左上のカラーキーを使用して透過処理を行おうとしていますが、期待通りの結果が得られません。可能性としては、Win10のペイントで作成したpngファイル形式に対応していない可能性があります。詳細な原因を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • heburusu
  • ベストアンサー率85% (140/164)
回答No.3

bmpでは正しく動くとなると、ちょっと原因がわからないですね・・・。 Windows10のペイントでpng形式で保存すると、使用はしていないければアルファ情報が含まれていたりするのかもしれないですね(完全に推測です…)。 画像サイズが大きくても問題ないのでしたら、 ひとまずはbmp形式でプログラム進めていったほうが良いかもしれないですね。 原因特定は時間かかりそうですし・・・。

noname#229433
質問者

お礼

原因がわかるまでBMP形式でやってみようと思います。 気分次第いろいろやったら原因が特定できるかもしれません。 また詰まったらよろしくです。

その他の回答 (2)

  • heburusu
  • ベストアンサー率85% (140/164)
回答No.2

試して頂きありがとうございます。 >SetTransColor( 255, 0, 0 ) ; >それも試してみましたが、無理でした、泣。 一応ですが、(255,0,0)をそのまま指定してもできないと思います。 >LoadDivGraph("mura.png",1,1,1,32,32,mapchip[1]); mura.pngで左上(透過させたい色)のRGBをSetTransColorする必要があります。 mura.pngの左上のRGBを指定しても透過できませんか?

noname#229433
質問者

お礼

>mura.pngの左上のRGBを指定しても透過できませんか? (255,0,0)赤でも(255,242,0)黄色でもダメでした。 前のプログラムに戻って SetTransColor(255, 242, 0); gazo = LoadGraph("mura.png"); にしても、この前は透過したのですが、しませんでした。 何かファイル設定等が問題あるかもしれません。

  • heburusu
  • ベストアンサー率85% (140/164)
回答No.1

LoadDivGraphで画像を読み込む前に、SetTransColorで透過させる色を指定する必要があるような気がします。 デフォルトは黒(0, 0, 0)が指定されているようです。 >例えばある画像ファイルの真っ赤( R = 255, G = 0, B = 0 )な部分を透過色としたい場合は、 > その画像ファイルを LoadGraph などで読み込む前に SetTransColor( 255, 0, 0 ) ; を実行しておきます。

参考URL:
http://dxlib.o.oo7.jp/function/dxfunc_graph1.html#R15N7
noname#229433
質問者

お礼

SetTransColor( 255, 0, 0 ) ; それも試してみましたが、無理でした、泣。 以前のステップの SetTransColor(255, 242, 0); gazo = LoadGraph("敵画像/b.png"); では透過するのです。 LoadDivGraphではなぜか透過しません。

noname#229433
質問者

補足

新たにa.bmpというbmpファイルを作って、 SetTransColor(255, 242, 0); LoadDivGraph("a.bmp",1,1,1,32,32,mapchip[1]); と書き直して透過に成功しました。 pngにこだわらなくてもbmpでもいいのですが、ファイルの何かの構造で失敗したりするかもしれません。 原因は不明です。

関連するQ&A