名前 題名 ▼ 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 ビットのビットマップのままです. > ということを利用した方法です. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link