• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アイコン作成ソフトについて)

アイコン作成ソフトでの色情報表示に関する質問

このQ&Aのポイント
  • アイコン作成ソフトでの色情報表示に関して質問があります。
  • RGBQUADの並びが間違っているのではないかと思っていますが、並びを変更してもうまく表示できません。
  • また、マスクデータのところをRGB(0,0,0)のパレットを指定してあげなければいけないのでしょうか。

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

  • ベストアンサー
  • MetalKing
  • ベストアンサー率57% (15/26)
回答No.3

> 色情報が変なんです。 >    : > また、マスクデータのところをRGB(0,0,0)のパレットを指定してあげなければいけないですよね 色情報が変なのではなく マスクの扱いを(意味も)間違えています。 マスクはパレットインデックスではなく、1ビットのマスク値そのものです。また、ラージアイコン(32x32)以外のアイコンの場合、確実にアライメントの操作が必要になります。 アイコンのフォーマットに関する正式なドキュメントはすでに絶滅しているようです。↓も技術サンプル扱い(英語)ですが、参考にどうぞ。

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/msdn_icons.asp
HokUebun
質問者

補足

回答ありがとうございます。 あれから頑張っていました。 表示することは出来たのですが、 マスクを掛けると、 画像周りににじんでいるような感じがします。 エクスプローラーの並べて表示で確認しました。 それ以外では一応表示できています。 感じが気のせいなのかバグなのか解りかねるところであります。

その他の回答 (2)

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.2

#1の方の意見が正解なら以下のようにpragmaで囲めばいけると思います(VCの場合) #pragma pack(push,1) struct RGBQUAD { unsigned char rgbBlue; // 青成分 unsigned char rgbGreen; // 緑成分 unsigned char rgbRed; // 赤成分 unsigned char rgbReserved; }; #pragma pack(pop)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

構造体にパディング(隙間)があるのではないでしょうか? sizeof(RGBWUAD)とかして4バイト(32ビット)になっていないようなら、charの並びをやめて、intかlong(いずれもその処理系で32ビットサイズのもの)でやってみたらどうでしょうか

関連するQ&A