gpt4 book ai didi

java - android bytebuffer as intbuffer - asarray 总是给出不支持的操作异常

转载 作者:行者123 更新时间:2023-12-02 08:09:40 24 4
gpt4 key购买 nike

我试图获取一组 mipmaplevels 并将其保存到本地缓存文件,以避免每次都重建它们(并且预先生成它们是不切实际的......)

我已经将 mipmaplevels 放入了一组位图中,现在想将它们写入我的缓存文件,但是无论我使用哪种缓冲区(直接与否,设置字节顺序与否),hasArray 总是返回 false int 缓冲区。我一定是在这儿做了什么蠢事,但我已经见树不见林了。

没有使用 java 很长时间,所以这可能是一个菜鸟错误;)

代码如下所示:

  int tsize = 256;
ByteBuffer xbb = ByteBuffer.allocate(tsize*tsize*4);
// or any other variety of create like wrap etc. makes no diference
xbb.order(ByteOrder.nativeOrder()); // in or out - makes no difference
IntBuffer ib = xbb.asIntBuffer();
for (int i = 0; i < tbm.length; i++) {
//ib.array() throws exception, ib.hasArray() returns false;
tbm[i].getPixels(ib.array(), 0, tsize, 0, 0, tsize, tsize);
ou.write(xbb.array(), 0, tsize*tsize*4);
tsize = tsize / 2;
}

最佳答案

参见this link - 它谈论同样的问题。那里有答案;然而,它的结论是:

In another post
http://forum.java.sun.com/thread.jsp?forum=4&thread=437539
it is suggested to implement a version of DataBuffer which is
backed by a (Mapped)ByteBuffer *gasp* ...

请注意,forum.java.sun.com 已转移到 Oracle 的某个地方。我希望这有帮助。无论如何,如果您找到更好的答案,也请告诉我:-)

关于java - android bytebuffer as intbuffer - asarray 总是给出不支持的操作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655291/

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