2015-11-19 68 views
2

我有一个移动应用程序需要显示将通过REST API发送给它的图像。如何在API上转换图像?我正在开发一个使用C#的ASP.net Web API。如何通过REST API传输图像

我试图转换图像为base64然后把它虽然API到移动设备,但这似乎采取了很多的时间,我要送大量的图片到我的移动设备中的一个运行。

我需要通过API发送图像文件与其他数据一起向移动设备和PhoneGap的Android将其保存在本地数据库以便进一步使用。 任何帮助,将不胜感激。

+0

您可以从专门的数据存储库(类似于Amazon S3或Azure Blob Storage)生成公共链接,然后只通过API发送链接。 – activatedgeek

+0

但在移动应用端,我不想从网络访问图像,因为应用程序应该即使脱机工作(没有互联网) – Arti

+0

因此,你可以有一个本地缓存存储为您的图像。但是第一次你必须去取! – activatedgeek

回答

0

如果你想通过REST API发送图像或文件,那么它应该是通过多部请求执行。 请参考here它如何让您的工作变得轻松。

您还可以使用Retrofit创建多请求。

+0

我在MVC中构建API。 – Arti

+0

模型视图控制器的MVC?或者是其他东西? – Avi

+0

是的。 ASP.net中的模型视图控制器Web API – Arti

1

如果你想使用Base64是最好的方式来发送与其他数据的图像在一个请求。

你能想到使用gzip压缩的图像数据,以减少大小。另一种方式是将图像以缩小的尺寸发送给您的android客户端alonside,并提供完整尺寸图片的网址。这使您可以快速向用户显示结果,然后从服务器加载后台任务中的大图像,并替换数据库中的小图像。

+0

Android将无法一直访问inetnet。只有在应用程序的第一次运行或每当用户想要更新数据(只要有互联网连接..),api将被调用,它将从移动本地数据库加载/更新数据。因此,在后台加载完整大小的图像将不起作用。 :-( – Arti

+0

然后,没有一个真正的替代方法来一次加载所有图像。正如我所说的,您可以压缩图像或使用质量较低/压缩率较高的JPEG来减小文件大小 – crysxd