推 LPH66: 我的水晶球顯示你或許是用"w"開檔, 用"wb"看看? 01/30 00:11
推 Killercat: 我的水晶頭微微點了個頭,判定需2,命中機率1d6+1 01/30 00:19
推 BlazarArc: 本板培育出許多隔空抓藥專家 01/30 00:23
→ suhorng: 話說假設是 32-bit 平台或 LP64 01/30 00:32
→ suhorng: 一個 sizeof(int) = 4, 一個像素 24-bit, 我有什麼誤會嗎 01/30 00:32
→ suhorng: 而且是有 RGB 還是只有 256 灰階? 01/30 00:33
→ Killercat: 不過說真的 好歹給個errno咩... 用ferror(ptr)看看吧 01/30 00:35
→ Killercat: 用linux sdk出的包 給個error 方便自己 也方便別人 :P 01/30 00:36
→ Push5F: 我的水晶球顯示你在睡覺了 01/30 01:33
推 andy410061: 我的水晶球顯示你還沒起來 01/30 05:05
我是用WB開檔 我要輸出的圖是灰階圖 input只有灰階像素值
我試著輸出成BMP 圖檔 或是YUV圖檔
輸出都要寫成CHAR輸出圖片才跑得出來 但資料是int
感覺這樣型態應該不對 ?!
沒用過ferror...不過應該直接看圖片有沒有問題意思一樣?!
另外
for(int i=0;i<32*32;i++)
fwrite(&a[i],sizeof(char),1,ptr);
如果寫成以下這樣 圖片也出不來
fwrite(a,sizeof(char),32*32,ptr)
感覺應該這2個應該是一樣的?!只是一個是連續記憶體一個是不連續?!
不知道為何寫成下面那個就會有問題
http://www.codeshare.io/SQ6qM yuv檔案寫入
※ 編輯: unixxxx (140.115.152.134), 01/30/2015 13:44:15
→ anyoiuo: 兩者不同唷int a[32x32]大小是32*32*sizeof(int) 01/30 17:33
→ anyoiuo: For迴圈那方式是在&a[i]輸出1個byte 01/30 17:34
→ anyoiuo: 而第二個方式i看起來是0是在&a[0]處印32byte 01/30 17:35
→ anyoiuo: 32*32byte才對 01/30 17:36
→ anyoiuo: 簡單說有個int a[2] = {0x00010203, 0x04050607} 01/30 17:38
我把問題打錯了..已修正
※ 編輯: unixxxx (140.115.152.134), 01/30/2015 18:25:35
推 anyoiuo: 用兩種方法會看到一個03 02,一個03 07 01/30 19:09
→ anyoiuo: 讀寫BMP應該要考慮檔案的Header 01/30 19:13
我大概懂了 感謝!!
※ 編輯: unixxxx (114.43.71.64), 01/30/2015 21:34:22