Silverlight將圖片轉換為byte

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   ar   os   使用   sp   

前言

  又是好久沒寫部落格了~~~,越來越懶,越來越沒有目標了!

本文

  最近總是有人問如何通過Silverlight上傳圖片並儲存的後台伺服器?眾所周知,Silverlight是用戶端程式,不能很好與伺服器進行“溝通”,上傳圖片的方法呢大致都是通過以下流程:

  1、用戶端擷取圖片-->2、轉換能夠傳輸的資料-->3、傳遞資料到服務端-->4、服務端還原資料為圖片

  第一步和第四步沒有問題,問題大多出在第二步和第三步,如何得到用戶端和服務端都能識別並且容易傳遞的資料呢?

  如果你使用的用戶端和服務端都是.NET方案,這就非常好辦,可以通過下面的方法:

  1、用戶端得到客戶選擇的FileInfo,然後通過WebClient方法post到服務端,服務端再還原成圖片即可,詳細文章http://www.cnblogs.com/greatverve/archive/2010/07/02/silerlight-up-down.html

2、用戶端將客戶選擇的圖片檔案轉換成FileStream包裹在一個類中通過WCF傳遞到服務端,服務端再還原,詳細文章http://www.cnblogs.com/gaoweipeng/archive/2009/09/13/1565409.html

  有些同學會抓耳撓腮的問,難道就沒有人用silverlight傳遞到類似JAVA,PHP的情況嗎?當然有,而且我最近碰到的都是這類似的情況,事先聲明我不是實在不瞭解JAVA和PHP,我只能將圖片轉換成byte給你,至於你怎麼還原,我只能說:”同學,任重而道遠!“,不廢話了,下面見分析:

  之前走了不少彎路,總是想著將WriteableBitmap轉換成byte(也不知道是誰上來就讓用WriteableBitmap轉,T_T),後來我才發現其實完全沒必要這麼麻煩,直接上代碼:

     byte[] staticByte;//全域byte,為將byte轉換為Image        private void OpenImage()        {            OpenFileDialog imageFile = new OpenFileDialog()            {                Filter = "Jpeg Files (*.jpg)|*.jpg|All Files(*.*)|*.*"            };            if (imageFile.ShowDialog() == true)            {                 System.IO.Stream fileStream=imageFile.File.OpenRead();                byte[] imageByte=new byte[fileStream.Length];//設定byte的長度為檔案流的長度                fileStream.Read(imageByte,0,imageByte.Length);//將檔案流資訊讀取到byte數組中                staticByte = imageByte;//將讀取好的byte數組儲存到全域                byteTextBox.Text=UTF8Encoding.UTF8.GetString(imageByte,0,imageByte.Length);//將byte數組顯示到前台            }        }

 

  直接通過FileStream.Read方法將檔案流轉換成byte,ok完工!

  後面我加了一點代碼將byte又轉換成圖片,代碼如下:

        private void button1_Click(object sender, RoutedEventArgs e)        {            OpenImage();            MemoryStream memoryStream = new MemoryStream(staticByte,0,staticByte.Length);//將byte轉換為記憶體流            BitmapImage img = new BitmapImage();            img.SetSource(memoryStream);//設定BitmapImage的源為記憶體流            this.image1.Source = img;//顯示圖片        }
程式圖片

選擇圖片介面

 

效果介面

程式源碼

  使用vs2010 sp1+silverlight5編寫,SilverlightImageToByte

  喜歡請推薦,轉載請註明出處http://www.cnblogs.com/zdp06623/p/4079482.html

 

Silverlight將圖片轉換為byte

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.