PDF JPEG сжатия изображений для DCTDecode - PullRequest
0 голосов
/ 11 февраля 2019

Я использую Android Pdf Writer apw-library для создания PDF-документа.

Библиотека работает хорошо, но я хочу небольшой размер PDF, поэтому я использую сжатый JPEG вместо растровых изображений.

Но apw-library принимает только растровые изображения для ввода изображения.https://github.com/Turbo87/apwlibrary/blob/master/apwlibrary/src/main/java/crl/android/pdfwriter/XObjectImage.java

Глядя на исходный код, я пытался его изменить:

Оригинальный метод: использует фильтр [/ ASCII85Decode / FlateDecode]

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;
    }

Моя новая реализация (в Android) использует Filter [/ DCTDecode / FlateDecode]

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;
}

Вот исходный код этого класса

https://github.com/Turbo87/apwlibrary/blob/master/apwlibrary/src/main/java/crl/android/pdfwriter/XObjectImage.java

Но мой подход терпит неудачу, и вывод pdf отображает пустую белую страницу.Поскольку я использую декодирование DCT, я совершенно не уверен, что toByteArray () возвращает данные, подходящие для DCTDecode.

Как извлечь данные из сжатого файла JPEG и добавить в PDF, чтобы быть позжедекодированный DCTDecode и показанный в pdf?

Я неопытный в pdf-генерации.Помощь приветствуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...