【发布时间】:2014-05-21 06:45:00
【问题描述】:
我正在构建一个 C#、WPF 和 Android 应用程序,主要用于培训,但无论哪种方式,我遇到的问题如下:
当我执行以下代码 WPF 应用程序时,它将所需文件从磁盘保存到桌面,但是当我尝试从 Android 应用程序执行相同操作时出现问题,我确实连接到控制台应用程序,但是byte[] 显然是不一样的格式,可能我漏掉了什么,或者我出了什么问题。
图像转字节数组函数:C#
private static byte[] ImageToByteArraybyMemoryStream(Image image) {
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();
}
将图像保存到磁盘方法 C#
public static void ByteArrayToImageFilebyMemoryStream(byte[] imageByte) {
try {
MemoryStream ms = new MemoryStream(imageByte);
Image image = Image.FromStream(ms);
image.Save(@"C:\Users\jycr753\Desktop\imageTest1.png");
}
}
转换为 byte[] 并从 Android 应用程序发送。
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmapImage.compress(Bitmap.CompressFormat.PNG, 70, stream);
byteArray = stream.toByteArray();
File fl = new File( imagePath);
FileInputStream fi = new FileInputStream( fl );
BufferedInputStream bi = new BufferedInputStream( fi );
bi.read( byteArray, 0, byteArray.length );
OutputStream outs = sock.getOutputStream();
outs.write( byteArray, 0, byteArray.length );
outs.flush();
来自控制台应用程序的图像
保存文件方法屏幕截图中的调试器
清单权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
字节码
如果 C# 应用程序需要 ASCII 编码,是否有任何问题?
任何帮助我指出正确的方向都会很棒,如果需要放置更多代码,请询问:)
感谢社区..
【问题讨论】:
-
有什么理由不能将数据作为 base64 编码字符串发送?
-
这样做有什么好处吗?
-
很简单。便携
标签: c# android wpf sockets byte