Bitmap scanline |
尚未結案
|
aresustar
一般會員 發表:9 回覆:8 積分:3 註冊:2008-10-21 發送簡訊給我 |
我想把圖中顏色轉換~黑變白~白變黑
但我這樣寫轉出來的圖怪怪的 請各位高手指點一下~感謝 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 發送簡訊給我 |
只有黑白兩色的圖的話
可以應用 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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |