20240528打卡

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

常用方式:

Android 发送图片to Base64图片数据,Web API端进行数据转码成图片并保存到本地。
Android 发送图片to Base64图片数据,Web API端进行数据转码成二进制形式存储到数据库。
Web API 直接发送图片名称,Android 客户端通过网络方式加载图片(将图片的URL地址读取成InputStream再将其转换为Bitmap)
Web API 从数据库中读取图片二进制文件,并通过Base64编码变成字符串数据,从而将其返回到客户端,客户端对他进行Base64转Bitmap的操作。
以上大概就是我对于服务端和客户端图片操作的全部方法了。
因为后服务端转码网上一搜一堆,这里就不详细说明了。

方法一:

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

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

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

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

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

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

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

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

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

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

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

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

方法二:

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

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

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

本文作者:丰川扬子

本文链接:https://www.cnblogs.com/newzeon/p/18219063

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   丰川扬子  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.