取出像素的問題?? |
答題得分者是:taishyang
|
residue
中階會員 發表:90 回覆:153 積分:53 註冊:2003-07-02 發送簡訊給我 |
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: 不好意思喔!!請問版大如何把呈現在>>< face="Verdana, Arial, Helvetica"> 之前用 DELPHI 寫的, 你自己改成 C 吧!!... < class="code"> procedure TForm1.Button1Click(Sender: TObject); const _iSize=512*512 ; var bmp : TBitmap ; dwLast :DWORD ; Info: PBitmapInfo; InfoSize: Cardinal; Image, OrgImage: PByte; ImageSize: Cardinal; i : integer ; b : byte ; pb : pbyte ; ms : TMemoryStream ; begin ms:=TMemoryStream.Create ; if FileExists('test.raw') then ms.LoadFromFile('test.raw') else begin for i:=0 to _iSize-1 do begin b:=i mod 256 ; ms.Write(b,1) ; end ; ms.SaveToFile('test.raw') ; end ; dwLast:=GetTickCount ; bmp:=TBitmap.Create ; bmp.PixelFormat:=pf24bit ; bmp.Width:=512 ; bmp.Height:=512 ; pb:=ms.Memory ; with bmp do begin GetDIBSizes(Handle, InfoSize, ImageSize); Info := AllocMem(InfoSize); try Image := AllocMem(ImageSize); OrgImage:=Image ; try GetDIB(Handle, Palette, Info^, Image^); for i:=0 to _iSize-1 do begin pbyte(Image)^:=pb^ ; inc(Image) ; pbyte(Image)^:=pb^ ; inc(Image) ; pbyte(Image)^:=pb^ ; inc(Image) ; inc(pb) ; end ; Image:=OrgImage ; /// SetDIBits(canvas.handle,Handle,0,512,Image,info^,DIB_RGB_COLORS); with Info^.bmiHeader do StretchDIBits(canvas.Handle, 0, 0, 511, 511, 0, 0, biWidth, biHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY); finally FreeMem(Image, ImageSize); end; finally FreeMem(Info, InfoSize); end; end; image1.picture.graphic:=bmp ; bmp.free ; caption:=format('time=%d',[getTickCount-dwLast]) ; end; 其中 Image 存的就是實際的 圖素 . ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
residue
中階會員 發表:90 回覆:153 積分:53 註冊:2003-07-02 發送簡訊給我 |
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
residue您好:
引言:Image上的二值化影像把像素擷取出來然後以1和0矩陣方式顯現在Label上顯示在Label上很奇怪吧(資料量那麼大,用Label實在不適合) 我用Memo您參考看看(Label的話就請您自行測試囉) 請先確認Source是二值影像,再試試下面的code for (int y=0;y順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - |
residue
中階會員 發表:90 回覆:153 積分:53 註冊:2003-07-02 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
residue您好:
1. 書上找不到範例,您可以自行練習與測試看看,進步比較快喔
2. 您可以自行判斷速度慢的原因為何這樣您就會更了解Memo囉 那試試下面的code(改用StringGrid1顯示速度應該也變快了)
for (int y=0;yP.S:要把Row以及Col的count改成與Image的長與寬相同 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - |
residue
中階會員 發表:90 回覆:153 積分:53 註冊:2003-07-02 發送簡訊給我 |
|
macoy000
一般會員 發表:2 回覆:2 積分:0 註冊:2003-09-25 發送簡訊給我 |
|
fyt003
一般會員 發表:3 回覆:2 積分:1 註冊:2004-06-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |