Я запутался насчет растрового изображения для ByteOutputStream
Я использую библиотеку Android apw - Android Pdf Writer, который использует метод для преобразования растрового изображения в массив байтов [].
Я пытаюсь добиться этого с помощью метода 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;
}
Я неопытный в побитовой логике и разговоре.Я не мог точно понять метод библиотеки.
Есть ли что-то, что я здесь упускаю?Небольшая помощь будет оценена