我有一个字节数组,其中包含一个图像...我想保存它被裁剪。
我的工作方法是: 得到字节[] 使用BitmapFactory.decodebytearray将其转换为位图 使用createbitmap(sourceBitmap,x1,y1,whileX,whileY)从中创建另一个位图 回收第一个(未加工的) 保存第二个,然后再回收
问题是,有一段时间它存在2位图,原始和裁剪的,这就是为什么我不能使用这种方法与更大的图像(超过3MP)
有没有办法直接从字节数组裁剪图像?我看到有一个decodeByteArray(dataArray,偏移,长度,选项),但我无法从中制作图像(剩下的数据不是图像)...有人可能帮忙吗?
答案 0 :(得分:2)
方法decodeByteArray(dataArray, offset, length, options)
不是用于裁剪图像,而是从包含比图像本身更多数据的字节缓冲区解析图像。这种情况的典型用途是从复杂的二进制数据结构中提取图像,其中包括图像等。
据我所知,没有创建新图像就无法裁剪图像。对我来说,你能做的最好的就是你现在正在做的事情。
答案 1 :(得分:0)
对于JPEG(移动设备上无处不在的图片格式),可以仅解码某些特定的矩形。这要求在通用软件解码器的顶部编写C代码时需要一定的纪律,尤其是如果您想尽快执行它,并且不浪费额外的RAM。
在提出此问题五年后,添加了