【问题标题】:I want to save captured image in an Object (Windows Phone App)我想将捕获的图像保存在对象中(Windows Phone 应用程序)
【发布时间】:2013-09-11 18:15:23
【问题描述】:

我正在使用 Windows Phone 7 应用程序。使用此代码我捕获了图像并保存到媒体库中

myCamera.Show();

这是为了保存到媒体库

mediaLibrary.SavePicture("TestPhoto", imageBits);

我的问题是>我想将捕获的图像保存到可以直接发送到服务器的对象中

【问题讨论】:

  • 据我所知,您可以只发送 imageBits,不是吗?
  • @Robert 我如何将此图像位保存到对象中???
  • “对象”是什么意思?它是(很可能)一个字节数组。您只需要确保服务器需要一个字节数组,然后您就可以将它作为 BLOB 或其他格式保存到文件或数据库中。

标签: c# windows-phone-7


【解决方案1】:

imageBits 已经是一个对象(Stream 类型),所以你所要求的实际上没有意义。大概您正在尝试将其转换为字节数组以便将其发送到服务器。

MemoryStream ms = new MemoryStream();
//if you've manipulated stream before this call, reset position
e.ChosenPhoto.Position = 0;
e.ChosenPhoto.CopyTo(ms);
byte[] imageByteArray = ms.ToArray();
ms.Dispose();

imageByteArray 然后将您的图像包含为字节数组。或者,您可以将图像转换为Base64 编码字符串并发送,但这取决于您的服务器是否可以对其进行解码。

string base64 = Convert.ToBase64String(imageByteArray);

【讨论】:

  • 你能说一件事吗,Dispose() 代表什么...?
  • 如果类实现了IDisposable 接口,调用它来移除所有非托管资源(这有助于避免内存泄漏)通常是个好主意。调用Dipose 会关闭流,因为我们不再需要它,并且本质上会在对象之后进行清理,并将其标记为准备好被垃圾收集器移除。你可以用 usingas shown here 做同样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
相关资源
最近更新 更多