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

關於bmp的讀檔與寫檔

尚未結案
youngjw
一般會員


發表:4
回覆:8
積分:2
註冊:2005-10-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-03 18:06:50 IP:140.116.xxx.xxx 未訂閱
我的程式只是簡單的讀進來再寫出去 所以寫出的圖應該會跟輸入一致才對 我在讀寫bmp的前54byte的標頭檔時都是ok的 但是之後的資料卻都抓不到,我有用過getline、get、fread去讀都不行 不知道是我程式有錯,還是說不能儲存到二維陣列中, 因為前54的標頭是用一維去存是ok的 而我看了三本c++的書都只有一維陣列的範例, 所以請各位大大指導一下, 謝謝...    
#include "iostream.h"
#include "fstream.h"
#define col 99
#define row 100
#define header_num 54    char image_r[row][col];
char image_g[row][col];
char image_b[row][col];
char header[header_num];    void main()
{
        void read_image();
        void write_image();            read_image();
        write_image();
}    void read_image()
{
        int i,j;
        ifstream fip("rhino.bmp",ios::in);
        fip.getline(header,54);
        
        for(i=row;i>0;i--)
        {
                for(j=0;j0;i--);
        {
                for(j=0;j    發表人 - youngjw 於 2005/10/03  22:04:17
        
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-03 18:35:31 IP:61.230.xxx.xxx 未訂閱
youngjw 您好:    請注意程式碼的縮排整理並參考下列連結頁面內的說明,然後透過 "修改文章" 的功能重新張貼您的程式碼,以便於瀏覽: 【公告】程式碼張貼規則與方法 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=57538 【公告】重申版規與作業問題說明 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58991 7 天天敲鍵盤 v 時時按滑鼠 8
youngjw
一般會員


發表:4
回覆:8
積分:2
註冊:2005-10-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-04 19:55:46 IP:140.116.xxx.xxx 未訂閱
這是我修改完的code 所以可以動了, 原因就是在開啟檔案時一定要再加上ios::binary才可以抓到正確的值 但是在檔案輸出時沒加卻沒關係, 請問各位大大這是什麼原因呢?
#include 
#include 
#include 
#include     void main()
{            char header[54];
        char image_b[100][99],image_g[100][99],image_r[100][99];
        ifstream fip;
        fip.open("rhino.bmp",ios::in|ios::binary);
        for(int z=0;z<54;z  )
        {
                fip.get(header[z]);
                cout<         
        
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-04 20:42:47 IP:219.84.xxx.xxx 未訂閱
fstream預設是以文字模式開啟,要處理binary的資料要加上ios::binary 至於文字模式和二進位模式的不同在於解讀字元,如eof,\n,\r..。處理的函式也不同,二進位模式都是用read和write,文字模式則是的get,getline和put。
youngjw
一般會員


發表:4
回覆:8
積分:2
註冊:2005-10-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-10 01:02:00 IP:219.86.xxx.xxx 未訂閱
謝謝大大的指導,我會try try看的,謝謝哦
系統時間:2024-05-03 12:31:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!