掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Bitmapの表示色を変更するには (ID:25168)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
junkiさんのパレット変更法だと procedure TForm1.Button1Click(Sender: TObject); var bmp8:TBitmap; ct: array[0..255] of TRGBQuad; c:TRGBQuad; ps:PRGBQuad; i,ix,iy:integer; cbw:Word; pd:PByte; begin bmp8 := TBitmap.Create; bmp8.PixelFormat := pf8bit; bmp8.LoadFromFile('test.bmp'); GetDIBColorTable(bmp8.Canvas.Handle,0,255,ct); for i := 0 to 255 do begin ct[i].rgbBlue := 255 - ct[i].rgbBlue; ct[i].rgbGreen := 255 - ct[i].rgbGreen; ct[i].rgbRed := 255 - ct[i].rgbRed; ct[i].rgbReserved := 0; end; SetDIBColorTable(bmp8.Canvas.Handle,0,255,ct); DeleteObject(bmp8.ReleasePalette); BitBlt(Canvas.Handle,0,0,bmp8.Width,bmp8.Height,bmp8.Canvas.Handle,0,0,SRCCOPY); bmp8.Free; end; こんな感じですよね。 しかし初めて知ったのですが、BitbltのSRCINVERTじゃだめなんですね。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.