喫茶XRAYトップページ

[スレッド全体
]

[7254] Re:テスト用の新規プロジェクトは...返信 削除
2014/2/24 (月) 00:11:45 Mr.XRAY
> えっ? どうしても知りたい ?

しょうがないなーって,誰も教えてくれとは言ってませんが.
例えばこんなのはどうでしょう.
動作確認は,前と同じ.
えっ? さっきの書き込み書いてから考えていたんだろうって,
ほっといてください!!

ただし,このコードが,Delphi ML で質問された方の参考になるかは
分かりません.私が勝手に内容を解釈しているたげですので.

//-----------------------------------------------------------------------------
//  TImageに表示している画像をビットマップとして保存
//  保存した画像は色数が8ビットの画像となる
//-----------------------------------------------------------------------------
procedure TForm1.Button3Click(Sender: TObject);
var
  TmpBMP : TBitMap;
begin
  TmpBMP := TBitMap.Create;
  try
    TmpBMP.PixelFormat := pf8bit;
    TmpBMP.SetSize(Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height);
    TmpBMP.Canvas.Draw(0, 0, Image1.Picture.Bitmap);

    TmpBMP.SaveToFile('AAA.bmp');
  finally
    TmpBMP.Free;
  end;
end;

TBitmap は特に指定しないかぎり,ビット深さは 32 ビットとなります.
そこで,上のコードの try の中では,

(1) 生成したビットマップのビット深さを PixelFormat で 8 ビットとする
(2) そのビットマップのサイズを TImage のビットマップと同じにする
(3) そのビットマップの Canvas に何かを描く.ここでは別のビットマップを描画
    別のビットマップとは,TImage に描画されているビットマップ
(4) ビットマップを保存する

という手順になっています.
元の,生成したビットマップを 8 ビットとしています.したがって,何を描画
しても,8 ビットのビットマップは,8 ビットのビットマップのままです.
ということを利用した方法です.


[7266] ビットマップの色数を変更.返信 削除
2014/2/24 (月) 23:23:06 Mr.XRAY
忘れない内にサンプル作成してみました.

[03_ビットマップ画像のビット深さ ( 色数 ) の変更]
http://mrxray.on.coocan.jp/Delphi/plSamples/910_DisableBitmap.htm#03


[7267] Re:ビットマップの色数を変更.返信 削除
2014/2/27 (木) 08:16:07 Mr.XRAY
> http://mrxray.on.coocan.jp/Delphi/plSamples/910_DisableBitmap.htm

以下のサンプルを追加して,記事を変更しました.

[04_TNkDIB を使用したビットマップ画像の減色]
[05_TGIFImage を使用したビットマップ画像の減色]
[06_ビットマップ画像のグレイスケール化 ]


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82