小编The*_*nny的帖子

使用Base64将Android映像上传/下载到JSON会导致内存不足错误

我目前编码和解码图像到Base64.我通过使用流将图像编码为字符串来克服OOM的初始问题.

我现在的问题是我无法理解如何通过Gson将多个分辨率图像(5620 x 3747 - 4.92MB或3264 x 1836 - 1.35MB)的多个Base64编码字符串添加到JSON对象.目前Gson仅使用来自5312 x 2988 - 4.95 MB映像的2个Base64字符串抛出OOM异常.

我知道android可能只能为每个应用程序节省16/20Mb,因此这种转换必须超过限制.

如何将流中的Base64字符串写入JSON对象,该对象将包含发布到我的服务器所需的特定值?

是否更容易更改我的服务器以接受多部件请求而不是基于JSON的POJO与多个Base64字符串?我目前使用的是Volley,并没有官方的多部分请求以及IO流.

如果是压缩问题,在编码到Base64字符串之前,我应该对图像应用多少压缩?理想情况下,我希望失去任何质量但具有最佳压缩级别.

更多信息

我正在上传多个不同分辨率的图像,因为它是兼容性的测试.例如,我发送的所有图像都是在低分辨率和极高分辨率的设备上拍摄的,因为我的应用依赖于这些图像的功能.我试图证明我的应用程序可以处理任何图像(在某种程度上,主要是在移动设备上捕获的图像).

我知道有些图像可能太大,以至于将它们加载到内存中会导致异常.这是我稍后会尝试处理的.

在某些情况下,将上传的图像可以从1到200.

我正在努力寻找能够很好地扩展的最佳解决方案.

base64 android image gson android-volley

11
推荐指数
1
解决办法
2142
查看次数

HTML/Body不会封装整个高度

这是一个快速模型来创建一个完整大小的网页,但每当我测试它时,屏幕顶部会有一小块空间.

我怎样才能摆脱顶部的这个小空间?

HTML

<body>
<div id="container">
    <header id="header">
        <div class="header_container">
            <h1 class="header_logo">Blog</h1>
            <nav class="menu_nav">
            </nav>
        </div>
    </header>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)

CSS

body,html {
    margin: 0;
    height: 100%;
}

#container{
    height: 100%;
    width: 100%;
    background-color: orange;
}

#header {
    width: 100%;
    height: 80px;
    background-color: green;
}

.header_container{
    margin-left: 50px;
    margin-right: 50px;
}
Run Code Online (Sandbox Code Playgroud)

html css

4
推荐指数
1
解决办法
121
查看次数

标签 统计

android ×1

android-volley ×1

base64 ×1

css ×1

gson ×1

html ×1

image ×1