几天来,我一直在努力。几周,也许。字面上地。:(
所以我在 SD 卡上有一张很可能来自内置摄像头的图像。我想获取该图像并将其下采样为任意大小(但总是更小且永远不会更大)。我的代码使用标准的 Android 位图方法来解码、调整大小、重新压缩和保存图像。只要最终图像小于 3MP 左右,一切正常。如果图像更大,或者如果我尝试一次执行其中几个,应用程序会因 OutOfMemoryError 而崩溃。我知道为什么会这样,而且我知道这是出于完全正当的理由,我只是希望它不再发生。
听着,我不是想在这里发射火箭。我要做的就是调整相机图像的大小并将其转储到 OutputStream 甚至是临时文件。肯定有人在外面做了这样的事情。我不需要你为我写代码,我也不需要我的手。但是在我的各种编程流产和痴迷谷歌搜索的日子里,我什至不知道该往哪个方向前进。粗略地说,有谁知道如何解码 JPEG,对其进行下采样,以 JPEG 重新压缩,然后发送出去在 OutputStream 上而不分配大量内存?