gpt4 book ai didi

java - Android 上的位图 LockBits?

转载 作者:搜寻专家 更新时间:2023-11-01 09:10:17 27 4
gpt4 key购买 nike

我在 Android 上的程序使用的算法使用了很多 setPixel 和 getPixel,因此,它非常慢。在 .NET 上,我可以使用 LockBits 使其更快。 Java 或 Android 上是否有 LockBits 或类似软件?

编辑:经过一些搜索,我找到了 copyPixelToBuffercopyPixelFromBuffer,不知道这是不是我需要的?

最佳答案

是的,您应该使用上述两种方法并使用一个 ByteBuffer 对象,您将首先在其中存储所有位图数据。这样做之后,将所有缓冲区数据复制到字节数组中,然后您可以在该数组中进行所有 argb 操作。全部完成后,将这个字节数组包装到一个新分配的 ByteBuffer 中,然后最后将像素从这个缓冲区复制回原始位图中。这是一些示例:“bmpData”是保存图像像素数据的位图对象。

int size = bmpData.getRowBytes()*bmpData.getHeight()*4;
ByteBuffer buf = ByteBuffer.allocate(size);
bmpData.copyPixelsToBuffer(buf);
byte[] byt = buf.array();
for(int ctr=0;ctr<size;ctr+=4)
{
//access array in form of argb. for ex. byt[0] is 'r', byt[1] is 'g' and so on..
}
ByteBuffer retBuf = ByteBuffer.wrap(byt);
bmpData.copyPixelsFromBuffer(retBuf);

关于java - Android 上的位图 LockBits?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8698983/

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