实际上我正在开发一个" social"我的办公室的应用程序,我想知道什么是加载或管理图片的最佳方式。每个用户都有一个profil图片,我想在个人档案视图,联系人列表(小一点)中随时随地显示它。当用户创建其配置文件时,他从手机上的图片库中获取图片,并将其作为base64编码的字符串发送到服务器。我用来在服务器上保存已挑选图片的代码(SQL Server 2012数据库):
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编码图片。在目前,我面临着两个问题。
第一个问题:
即使列类型为 varchar(max),也无法将base64编码的字符串插入数据库。字符串在表格中切割。
第二个问题:
如果我想从bytesString解码base64字符串构建图片,那么它需要花费很多时间才能像这样工作。
所以我想知道像 Instagram 这样的应用程序或其他图片专用应用程序如何管理图片......有没有人能给我一些通过应用管理图片的建议?提前谢谢!
答案 0 :(得分:0)
我想到了两个想法:
<强> 1。将图像存储在二进制类型列中
我没有使用SQL服务器,但我想有一个二进制列类型,你可以在其中存储图像的原始字节。
<强> 2。将图像存储在文件中而不是数据库中。
您可以做的另一件事就是将图像存储在名称基于用户ID的文件中(即 user_15.png )。
其他注意事项
有没有理由对字节进行编码/解码?发送原始图像对我来说似乎是一个更好的选择。
你是如何实际发送编码图像字节的?根据我的理解varchar(max)
应该能够容纳大量数据。您确定服务器收到了正确的数据吗?
在客户端(在WP 8.1应用程序中),您可能希望缓存图像,这样您就不需要每次都从服务器加载它们。