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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步