Android客户端 和 服务器 的图片传输技术

Android客户端 和 服务器 的图片传输技术

WebAPI

写在前面

今天我们来看看如何处理Android客户端到Web API后端的图片的一些处理方法。

我比较常用的在两者间处理图片的几种方式

  • Android 发送图片to Base64图片数据,Web API端进行数据转码成图片并保存到本地。
  • Android 发送图片to Base64图片数据,Web API端进行数据转码成二进制形式存储到数据库。
  • Web API 直接发送图片名称,Android 客户端通过网络方式加载图片(将图片的URL地址读取成InputStream再将其转换为Bitmap
  • Web API 从数据库中读取图片二进制文件,并通过Base64编码变成字符串数据,从而将其返回到客户端,客户端对他进行Base64Bitmap的操作。

以上大概就是我对于服务端和客户端图片操作的全部方法了。

因为后服务端转码网上一搜一堆,这里就不详细说明了。

方法一:Web API 将Base64文件转码成图片并存储到本地

  1. 将图片在Android客户端将Bitamp转换为Base64编码文件并且通过Post方法进行传输,但是需要注意的是 : )。就是每次在Post传输文件时如果是传输的数据过大会导致Post请求失败。

  2. 其次就是对于Web API服务端的操作了。首先,我们在Web API获取相对应的存储文件的文件夹路径。

    string path = System.Web.Hosting.HostingEnvironment.MapPath($@"/Images/");
    

    如何代码就是用于获取Web API所在服务器的相对路径了,并且存放在Images文件夹。

  3. 如何存储将要存储文件的名称的问题:

    string fileName = Guid.NewGuid().ToString();
    

    这里我们使用的是Guid的方式去获取全局的唯一名称。

  4. 如何通过流的形式去写入文件:

    FileStream fileStream = new FileStream(path + fileName + ".jpg", FileMode.Create, FileAccess.Write);
    

    先是创建一个FileStream并且设置文件类型为FileModel.Create设置操作为FileAccess.Write.

    并且将存储图片的Base64文件转换为字节数组的形式。以及通过FileStream.Write的方式去写入数据。

这样,从Android客户端传输到Web API并进行存储的操作也就完成了。

方法:Android 通过图片的网络地址进行图片的读取

Android如何读取网络图片,其实就是通过Get方法去获取。

Bitmap mBitmap = BitmapFactory.decodeStream(new URL(address).openStream());

这里的address就是我们的网络图片的地址。但是他也是通过Get方法去获取,所以也是需要使用多线程来获取数据。

posted @ 2020-10-14 10:38  GreatCoder726  阅读(793)  评论(0编辑  收藏  举报