全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1340
推到 Plurk!
推到 Facebook!

Bitmap scanline

尚未結案
aresustar
一般會員


發表:9
回覆:8
積分:3
註冊:2008-10-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-06-17 17:21:38 IP:60.248.xxx.xxx 訂閱
我想把圖中顏色轉換~黑變白~白變黑
但我這樣寫轉出來的圖怪怪的
請各位高手指點一下~感謝
sFileName := ExtractFilePath(Application.ExeName) '未命名.bmp';
if not FileExists(sFileName) then Exit;
BitMap.LoadFromFile(sFileName); //BitMap.
Canvas.Draw(0,0,BitMap); // exit;
for y := 0 to BitMap.Height -1 do
begin
P := BitMap.ScanLine[y];
for x := 0 to BitMap.Width -1 do
begin
PixelValue := p[x];
if p[x] = clWhite then
Canvas.Pixels[x, y] := clBlack
else if p[x] = clBlack then p[x] := clWhite;
Canvas.Pixels[x, y] := clWhite;
end;
end;
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-18 19:47:51 IP:114.32.xxx.xxx 未訂閱
只有黑白兩色的圖的話
可以應用 TCanvas.TCopyMode
以下的code可以將 aa.bmp 黑白互轉後存成bb.bmp
要注意你的圖是黑白的圖 全彩的話 不一定每個色素都是0或者255

oA:= TBitmap.Create;
oB := TBitmap.Create;
oA.LoadFromFile('D:\aa.bmp');
oB=TBitmap.Create;
oB.Width:=oA.Width;
oB.Height:=oA.Height;
oB.Canvas.CopyMode := cmNotSrcCopy ;
oB.Canvas.StretchDraw(Rect(0,0,oB.Width,oB.Height),oA);
oB.SaveToFile('D:\bb.bmp');

編輯記錄
pprayer 重新編輯於 2010-06-18 19:51:12, 註解 無‧
系統時間:2024-05-02 4:19:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!