2014-12-02 85 views
0

其實我正在爲我的辦公室開發一個「社交」應用程序,我在想什麼是加載或管理圖片的最佳方式。每個用戶都有一個profil畫面,我想在任何我想要的地方顯示它,在profil視圖中,例如在聯繫人列表中(小一些)。當用戶創建其配置文件時,他從手機上的圖片庫中獲取圖片,並以base64編碼字符串的形式發送到服務器。我已經用於保存服務器(SQL Server 2012的數據庫)所攝取的圖片的代碼:什麼是管理圖片的最佳方式WP 8.1

var reader = new DataReader(pictureStream.GetInputStreamAt(0)); 
byte[] bytes = new byte[pictureStream.Size]; 
await reader.LoadAsync((uint)pictureStream.Size); 
reader.ReadBytes(bytes); 
string bytesString = Convert.ToBase64String(bytes); 

所以這裏bytesString包含編碼圖片服務器上發送的base64。其實,我面臨着兩個問題。

第一個問題

編碼的字符串的基於64不能被插入到數據庫中即使列類型是VARCHAR (最大)。表中的字符串被切斷。

問題二

如果我想從bytesString以base64字符串解碼建設的圖片,它需要這麼多的時間,它是不可能這樣的工作。

所以我想知道如何應用這樣的Instagram或其他圖片專業應用程序管理圖片這麼好......有人可以給我一些建議,通過應用程序管理圖片?提前致謝 !

+0

使用BitmapImage存儲實際圖像 – 2014-12-03 08:37:29

回答

0

兩個想法浮現在腦海中:

1.存儲圖像的二進制類型列

我沒有使用SQL服務器非常多,但我想有一個二進制列類型您可以在其中存儲圖像的原始字節。

2.將圖像存儲在文件而不是數據庫中。

您可以做的另一件事是將圖像存儲在名稱基於用戶ID的文件中(即user_15.png)。

其他考慮

是否有任何理由來編碼/解碼字節?發送原始圖像對我來說似乎是一個更好的選擇。

你是如何實際發送編碼的圖像字節?據我所知,varchar(max)應該能夠保存相當多的數據。你確定服務器收到正確的數據嗎?

在客戶端(在WP 8.1應用程序中),您可能需要緩存圖像,以便您不必每次都從服務器加載它們。

相關問題