所以,我正在努力做一個家庭作業,要求我反照片別名。但這不是我的問題的重點。這些文件是.ppm ppm format。我讀了它,使用fread
(它是顏色,所以我需要讀取rgb)。fwrite()不寫整個ppm文件
fread(tmp, 3 * sizeof(char), maxWidth * maxHeight, f)
其中
tmp = (char *)malloc(width * height * 3 * sizeof(char));
我鑄TMP到短整型(我需要做對所得矩陣一些工作):
for(i=0; i < width * height; i++){
values[i] = (short int)tmp[i];
}
值被定義爲短整型:
values = (short int*) malloc(width * height * sizeof(short int));
事情是,我只是想做一個測試。閱讀圖像,將其轉換爲int
,將其轉換回char,寫入圖像。在這個階段,只有1/4的圖像被寫入,我不知道爲什麼。我閱讀fwrite
的文檔,但我無法找出我做錯了什麼。轉換圖像(tmp2分配爲img):
for(i=0; i < width * height; i++){
tmp2[i] = (char)values[i];
}
fwrite(tmp2, 3 * sizeof(char), width * height, g);
我是否正確使用fwrite?也許有人也在爲此而努力,並知道如何回答。
你有使用C++的原因嗎?我相信Java以更好的方式處理文件流。 – CrakC
@CrakC:這將是翻譯整個程序或違反作業要求的一個相當差的理由。 –
@JoachimPileborg:自從'fread'和'fwrite'何時不能用於處理文本文件? –