2014-12-02 112 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应用程序中),您可能需要缓存图像,以便您不必每次都从服务器加载它们。

相关问题