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

picturebox上圖片轉換成bytes

尚未結案
donken
一般會員


發表:9
回覆:7
積分:3
註冊:2005-07-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-13 23:45:55 IP:220.131.xxx.xxx 未訂閱
請問一下如何將picturebox上圖片轉換成bytes 因為我要將圖片加密並傳送到另依台電腦
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-15 10:32:15 IP:211.20.xxx.xxx 未訂閱
//建立存放圖形的資料Buffer MemoryStream mem = new MemoryStream(); //將圖形存入mem pictureBox1.Image.Save(mem); 經過上述程式後,mem裡面就存放著圖形的資料了^^。
donken
一般會員


發表:9
回覆:7
積分:3
註冊:2005-07-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-17 00:30:47 IP:220.131.xxx.xxx 未訂閱
那在mem裡面它存ㄉ是bytes(01011100.....)的型式嗎? 那如果我要把資料拿出來我是不是要一一把它傳出來呢? 謝謝你了!!
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-17 09:45:04 IP:211.20.xxx.xxx 未訂閱
你可以使用下列的方式將資料取出來: byte[] data = new byte[mem.Length]; mem.Read(data, 0, mem.Length); 這是一次讀一個Byte byte data = mem.ReadByte(); //回傳目前Position的資料 MemoryStream的資料,可以查一下MSDN! 補充一點: 使用pictureBox1.Image.Save(mem);所儲存的資料,會存成bmp檔(可能也會是jpg其它等等檔案格式,我沒try過)。這點要注意一下哦。
donken
一般會員


發表:9
回覆:7
積分:3
註冊:2005-07-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-19 00:55:20 IP:220.131.xxx.xxx 未訂閱
對不起!!能再幫我看看嗎?我寫成這個方式時會有錯: MemoryStream mem = new MemoryStream(); pictureBox1.Image.Save(mem,System.Drawing.Imaging.ImageFormat.Bmp); byte[] data = new byte[mem.Length]; mem.Read(data, 0,mem.Length); byte data2 = mem.ReadByte(); richTextBox1.Text = data2.ToString(); 能再指點我ㄧ下嗎?謝謝囉!!
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-19 09:08:51 IP:211.20.xxx.xxx 未訂閱
錯誤是否發生在這一行呢? byte data2 = mem.ReadByte();     如果是的話,可能是mem.Position 已經移到資料的最末端!無法再讀取資料。
mem.Position = 0; //移到第一個Byte
for (int i = 0; i < mem.Length; i  )
{
   byte data2 = mem.ReadByte(); //當執行完這一行後,Position 會自動 1
   richTextBox1.Text  = data2.ToString();
}
發表人 - liangnet 於 2005/10/19 09:10:30
donken
一般會員


發表:9
回覆:7
積分:3
註冊:2005-07-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-10-19 22:59:46 IP:220.131.xxx.xxx 未訂閱
MemoryStream mem = new MemoryStream(); pictureBox1.Image.Save(mem,System.Drawing.Imaging.ImageFormat.Bmp); byte[] data = new byte[mem.Length]; mem.Read(data, 0,mem.Length); --->錯誤 //引數'3'無法從'long'轉換為'int' mem.Position = 0; for (int i = 0; i < mem.Length; i ) { byte data2 = mem.ReadByte(); --->錯誤 //無法將型別'int'隱含轉換為'byte' richTextBox1.Text = data2.ToString(); }
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-10-20 08:56:40 IP:211.20.xxx.xxx 未訂閱
不好意思!沒注意到型別不同 < class="code"> mem.Read(data, 0, (long)mem.Length); data2的資料型別改為int。
donken
一般會員


發表:9
回覆:7
積分:3
註冊:2005-07-26

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-10-20 22:30:28 IP:220.131.xxx.xxx 未訂閱
謝謝你那ㄇ耐心的幫我解答喔!!現在已經完成了 讓我學習到很多謝謝喔
系統時間:2024-05-14 2:30:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!