線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1829
推到 Plurk!
推到 Facebook!

如何取得jpg檔的pixel值

缺席
kkeenn
一般會員


發表:10
回覆:4
積分:2
註冊:2006-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-18 16:28:30 IP:125.229.xxx.xxx 訂閱
這是取得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 重新編輯於 2007-09-18 16:29:32, 註解 無‧
kkeenn 重新編輯於 2007-09-18 16:31:08, 註解 無‧
kkeenn
一般會員


發表:10
回覆:4
積分:2
註冊:2006-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-18 19:18:40 IP:125.229.xxx.xxx 訂閱
自己亂弄弄出來了..囧
[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]
系統時間:2024-04-29 11:20:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!