【问题标题】:crop image directly from byte array直接从字节数组裁剪图像
【发布时间】:2011-10-12 16:52:04
【问题描述】:

我有一个字节数组,其中包含一个图像...我想将其保存为裁剪。

我的工作方法是: 获取字节[] 使用 BitmapFactory.decodebytearray 将其转换为位图 使用 createbitmap(sourceBitmap, x1, y1, whileX, whileY) 从中制作另一个位图 回收第一个(未裁剪的) 保存第二个,然后也回收它

问题是它有一段时间存在 2 个位图,原始的和裁剪的,这就是为什么我不能对更大的图像(超过 3MP)使用这种方法

有没有办法直接从字节数组中裁剪图像?我看到有一个 decodeByteArray(dataArray, offset, length, options),但我无法从中制作图像(剩余的数据不是图像)......有人可以帮忙吗?

【问题讨论】:

    标签: android arrays image jpeg crop


    【解决方案1】:

    decodeByteArray(dataArray, offset, length, options) 方法并非用于裁剪图像,而是从包含比图像本身更多数据的字节缓冲区解析图像。它的典型用途是从复杂的二进制数据结构中提取图像,其中包括图像。

    据我所知,如果不创建新图像,就无法裁剪图像。对我来说,你能做的最好的就是你目前正在做的事情。

    【讨论】:

    • 是的,我害怕。我这边也有类似的问题,图片也有,这很烦人。
    【解决方案2】:

    对于 JPEG(移动设备上普遍存在的图片格式),可以仅解码某些特定的矩形。这需要在通用软件解码器之上编写 C 代码时有一定的纪律性,特别是如果您想尽可能快地完成它,并且不浪费额外的 RAM。

    Support in libjpeg-turbo 是在提出此问题五年后添加的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-23
      • 2016-08-23
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 2011-05-05
      相关资源
      最近更新 更多