gpt4 book ai didi

java - 将大图像保存为 PNG

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:51 25 4
gpt4 key购买 nike

我刚刚遇到了一个棘手的问题...

这是我的故事:

我的设备是 Samsung Galaxy Note,正常情况下,它以 3264 * 2448 像素的分辨率拍照。当我想查找详细信息时,我喜欢漂亮的图片,但在这里我讨厌它,因为它在 Android 中处理起来非常庞大。我可以读取和显示这么大分辨率的图像,我需要在它上面画线,然后我需要将图片和线都保存为 png。令我头疼的是,当我尝试创建一个像这样的可变位图时,我的 Android 总是给我 Out of memery exception:

    Bitmap bmp = Bitmap.createBitmap(3264, 2448, Config.RGB_565);
Canvas cv = new Canvas(bmp);
//draw a line and save and restore canvas
// I found an alternative solution yet proven to be uncorrect:
myImageView.setDrawingCacheEnabled(true);
myImageView.buildDrawingCache(true);
Bitmap bmp = myImageView.getDrawingCache();
//save bmp to png

bmp.width * bmp.height * 4 > getScaledMaximumDrawingCacheSize()

异常跳出。我已经测试了 myImageView.measure(...)myImageView.layout(...),但对我不起作用。(一切都很好,当我使用较小的图像测试相同的代码时)

有专家知道如何解决这个问题或给我一个解决方案吗?谢谢!

最佳答案

也许不是最终的解决方案,但您是否尝试增加堆大小?

对于 Android 2.2 或更低版本:

dalvik.system.VMRuntime.getRuntime().setMinimumHeapSize(sizeInBytes);

安卓版 2.3 or or higher versions :

android:largeHeap="true"

关于java - 将大图像保存为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com