zoukankan      html  css  js  c++  java
  • 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方法去获取,所以也是需要使用多线程来获取数据。

  • 相关阅读:
    What are the difference between DDL, DML and DCL commands?
    Dingjun123 :使用Partitioned Outer Join实现稠化报表
    Oracle Clusters
    Google实验室能力倾向测试(第一题及解答)
    搜索系统中基于字典的逆向中文分词
    vc++ 深入浅出 窗口创建过程
    计算机网络基础知识1
    线性代数学习之对称矩阵与矩阵的SVD分解
    珍爱生命
    str2hash
  • 原文地址:https://www.cnblogs.com/cao-1/p/13813448.html
Copyright © 2011-2022 走看看