如何取得jpg檔的pixel值 |
缺席
|
kkeenn
一般會員 發表:10 回覆:4 積分:2 註冊:2006-07-25 發送簡訊給我 |
這是取得raw檔pixel值的方法
[code delphi] var Source:TFileStream; Buf:array[0..786431] of byte; //512*512*3=786432 count,x,y,z:Integer; begin if (OpenDialog1.Execute()) then//開檔 begin Caption:=ExtractFileName(OpenDialog1.FileName);//顯示檔名 Source := TFileStream.Create(OpenDialog1.FileName,fmShareDenyNone); Source.ReadBuffer(Buf,786432); z:=0; for y:=0 to 511 do for x:=0 to 511 do for count := 0 to 2 do begin pixel[x*3 count][y]:=Buf[z]; z:=z 1; end; Source.Free; end; end; [/code] 請問要怎樣修改才能變成取得jpg呢 |
kkeenn
一般會員 發表:10 回覆:4 積分:2 註冊:2006-07-25 發送簡訊給我 |
自己亂弄弄出來了..囧
[code delphi] type PA=^TRGBTripleArray; TRGBTripleArray = array [Byte] of TRGBTriple; var i,j:Integer; Source:TJPEGImage; xp:PA; bmp : TBitmap ; begin if (OpenDialog1.Execute()) then begin Caption:=ExtractFileName(OpenDialog1.FileName);//將檔名顯示在表單上 Source:=TJPEGImage.Create; bmp:=TBitmap.Create; Source.LoadFromFile(OpenDialog1.FileName); bmp.Assign(Source); for j:=0 to 511 do begin xp:=bmp.ScanLine[j]; for i:=0 to 511 do begin pixel[i*3][j]:=xp[i].rgbtRed; pixel[i*3 1][j]:=xp[i].rgbtGreen; pixel[i*3 2][j]:=xp[i].rgbtBlue; end; end; Source.Free; bmp.Free; end; end; [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |