我已经以PDF格式创建了表格和一些额外信息。但无论我做什么,我都无法将图像导入我的PDF。我在资产文件夹中有my_thumb.png文件。
在我的MainActivity类
中try {
inputStream = MainActivity.this.getAssets().open("my_thumb.png");
Bitmap bmp = BitmapFactory.decodeStream(inputStream);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
model.setThumbStream(stream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在我的CreatePDF类
中Image thumb = Image.getInstance(Model.getThumbStream().toByteArray());
companyLogo.setAbsolutePosition(document.leftMargin(),121);
companyLogo.scalePercent(25);
document.add(thumb);
问题是
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
此行返回null。
我错过了什么意思?
提前致谢。
答案 0 :(得分:2)
首先让png成为可绘制的
Drawable d = Drawable.createFromStream(getAssets().open("my_thumb.png"), null);
然后将drawable转换为位图并获取字节数组:)
Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bitmapdata = stream.toByteArray();