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

關於RAW圖檔的秀圖問題

答題得分者是:taishyang
etgees
一般會員


發表:10
回覆:11
積分:4
註冊:2008-11-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-11 18:19:31 IP:61.225.xxx.xxx 訂閱

[code cpp]
請在此區域輸入程式碼
int i,j,k,a,b,c;
char *fname;
unsigned char rImage[512][512][3];
FILE *ptr_raw;
if(OpenDialog1->Execute())
{
ptr_raw=fopen(OpenDialog1->FileName.c_str(),"rb"); //這裡讀圖嘛~

for(i=0;i<512;i )
{
for(j=0;j<512;j )
{
for(k=0;k<3;k )
{
rImage[i][j][k]=fgetc(ptr_raw); //存放進3維陣列裡
}
}
}
for(i=0;i<=512;i )
{
for(j=0;j<=512;j )
{
Image1->Canvas->Pixels[i][j]=RGB(rImage[i][j][0],rImage[i][j][1],rImage[i][j][2]);

//這裡是要秀圖
}
}
}
fclose(ptr_raw);
[/code]
Compiler完出現[C Warning] Unit1.cpp(50): W8018 Assigning unsigned long to TColor
但還是能執行

看起來這樣好像沒寫錯,
但是我開啟一張raw圖檔時,顯示出來結果是被水平翻轉再被逆時針旋轉90度的 囧?
圖片我是在PhotoImpact勾選交錯 512*512的raw圖檔
而且我一開始已經用C寫好程式都正確了,放進陣列的順序也都一樣
秀圖那裡顏色顯示正常表示RGB順序也是對的
怎麼會被旋轉呢 囧"
煩請各位不吝指教
謝!
附加檔案:49195c3396f54_test.rar
編輯記錄
etgees 重新編輯於 2008-11-11 18:47:47, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-11 18:32:28 IP:118.169.xxx.xxx 訂閱
1.沒看到你的binary file
2.改用ScanLine取代Pixel[][]顯示速度會快很多
站上有範例可以搜尋
3.顯示的部份通常都是由上至下,由左至右的順序,你的RAW DATA是這樣排列的嗎?
etgees
一般會員


發表:10
回覆:11
積分:4
註冊:2008-11-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-11 18:40:54 IP:61.225.xxx.xxx 訂閱

[code cpp]
請在此區域輸入程式碼
imagefile=fopen(argv[1],"rb"))

for(i=0;i<512;i )
{
for(j=0;j<512;j )
{
for(k=0;k<3;k )
{
image[i][j][k]=fgetc(imagefile);
}
}
}
[/code]

以上是我原本用C寫的讀圖片段

讀圖的順序也一樣,可適用BCB改寫後就被翻了 = ="

那我是不是要在多附加我的RAW圖檔上來呢?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-11 18:46:05 IP:118.169.xxx.xxx 訂閱
純猜測,你的i跟j會不會反了?
etgees
一般會員


發表:10
回覆:11
積分:4
註冊:2008-11-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-11-11 18:53:22 IP:61.225.xxx.xxx 訂閱
......真的耶

rImage[j][i][k]=fgetc(ptr_raw)

把裡面的 i , j 調換過來就正常顯示了....

怎麼會這樣阿 囧"

讀圖順序 用的圖檔 都和原本用C寫的程式一樣

但是BCB卻平翻 旋轉......

嗯...

非常感謝你唷
編輯記錄
etgees 重新編輯於 2008-11-11 18:54:05, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-11-11 18:57:33 IP:118.169.xxx.xxx 訂閱
help中提到
TColor Pixels[int X][int Y]
所以只要改顯示的地方就好了,用X,Y會比i,j容易看出問題所在
etgees
一般會員


發表:10
回覆:11
積分:4
註冊:2008-11-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-11-11 18:59:28 IP:61.225.xxx.xxx 訂閱
喔喔喔~

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