我试图在不使用bitmap.compress的情况下将位图编码和解码为字节数组,但当我解码数组时,BitmapFactory.DecodeByteArray总是返回NULL
public byte[] ToArray(Bitmap b)
{
int bytes = b.getByteCount();
ByteBuffer buffer = ByteBuffer.allocate(bytes); //Create a new buffer
b.copyPixelsToBuffer(buffer); //Move the byte data to the buffer
// DECODE
String imgString = Base64.encodeToString(buffer.array(), Base64.NO_WRAP);
byte[] ret = Base64.decode(imgString, Base64.DEFAULT);
imgString = null;
return ret;
}
有人帮忙吗?
BitmapFactory对压缩的JPEG进行解码。如果您想使用原始像素(就像您使用b.copypixelstobuffer(buffer);
一样,我建议您使用companion方法bitmap.copypixelsfrombuffer(buffer)
来还原位图(我想您需要为此分配新的可变位图)
附言。未压缩的图像比压缩的图像消耗更多的内存
问题内容: 在服务器(C ++)上,二进制数据使用以下函数压缩: 并将其发送到客户端(Java)。在客户端(Java)上,应使用以下代码段对数据进行解压缩: 问题是,当它尝试读入while循环时,它总是抛出: java.util.zip.ZipException:无效的存储块长度 在检查其他可能原因之前,有人可以告诉我是否可以使用compress2在一侧进行压缩,并在另一侧使用上述代码将其解压缩,
在服务器(C)上,使用ZLib函数压缩二进制数据: 它被发送到客户端(Java)。在客户端(Java),应使用以下代码段解压缩数据: 问题是,当它尝试读取时,它总是抛出: java.util.zip。ZipException:存储的块长度无效 在我检查其他可能的原因之前,有人能告诉我我可以用压缩器2在一侧压缩并使用上述代码在另一侧解压缩它,这样我就可以消除这个问题了吗?此外,如果有人对这里可能出现
问题内容: 我正在尝试编写一个可以压缩数据的类。以下代码失败(不会引发异常,但目标.gz文件为空。) 此外:我不想像在所有示例中一样直接生成.gz文件。我只想获取压缩的数据,以便在将数据写入文件之前将其加密。 如果我直接写入文件,则一切正常: 但是,如果我想将其“旁路”到字节数组流,则不会产生单个字节- 始终为空。 问题答案: 问题是您没有关闭。在关闭它之前,输出将是不完整的。 您只需要 在 读取
我想在java中解压缩一个字符串,它在Python中被gzip压缩。 这是Java中的解压缩代码: }
问题内容: 我有一堆来自某些Web请求的文件,有些文件是gzip压缩的,我需要将它们解压缩并将其打印为字符串。这是我第一次尝试使用golang,尝试了一些在网上找到的示例,但无法正常使用。 这是我尝试的最后一个测试: 但它显示了错误:panic:,与其他一些示例相同。 如何解压缩字节数组的内容? 问题答案: 这根本不是gzip数据。正确的gzip数据以魔术序列开头,即。就此而言,它正确地抱怨 gz
问题内容: 我有一些字符串,每个字符串大约1万个字符。它们中有很多重复。它们是序列化的JSON对象。我想轻松地将它们压缩为字节数组,然后从字节数组解压缩它们。 我怎样才能最轻松地做到这一点?我正在寻找方法,因此可以执行以下操作: 问题答案: 你可以试试