android - Android 位图到每个像素转换的字节数组
问题描述
我对解码位图感到困惑ByteOutputStream
我正在使用 android Library apw - android pdf writer,它使用一种方法将位图转换为 byte[] 数组。
我正在尝试使用 toByteArray() 方法来实现这一点,但输出 pdf 显示的是黑色图像。
图书馆方法
private byte[] getBitmapData(Bitmap bitmap) {
byte[] data = null;
if (bitmap != null) {
data = new byte[mDataSize];
int intColor;
int offset = 0;
for (int y = 0; y < mHeight; y++) {
for (int x = 0; x < mWidth; x++) {
intColor = bitmap.getPixel(x, y);
data[offset++] = (byte) ((intColor >> 16) & 0xFF);
data[offset++] = (byte) ((intColor >> 8) & 0xFF);
data[offset++] = (byte) ((intColor >> 0) & 0xFF);
}
}
}
return data;
}
我的新方法
private byte[] getBitmapData(Bitmap bitmap) {
if (bitmap != null) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, stream);
bitmap.recycle();
return stream.toByteArray();
}
return null;
}
我在按位逻辑和对话方面缺乏经验。我无法完全理解库方法。
我在这里想念什么吗?一点帮助将不胜感激
解决方案
推荐阅读
- r - 来自密度表面的样本点概率
- mysql - 从表中选择具有最大列值的单个条目,其中多个条目具有该值
- excel - VBA Excel根据创建的上一个工作表添加带有编号的新工作表
- python - 如何在 Python 中触发 onClick 事件
- c - 在c中使用高斯模糊模糊图像
- azure-synapse - Azure SQL 数据仓库 (Synapse Analytics) 可以安装在本地吗?
- kubernetes - 使用 Minikube 和 AWS ECS 构建本地测试环境
- apache-spark - Apache Airflow 在* Spark 作业中编排 DAG?
- c - fpclassify(x) == FP_NAN 在功能上是否等同于 isnan(x)?
- javascript - SVG 图表使用 Canvg 转换错误