Просмотрщик изображений в Android - PullRequest
2 голосов
/ 19 февраля 2011

Я бы хотел создать приложение для чтения электронных книг для Android, но в моем случае все книги в основном представляют собой отсканированные изображения, скомпилированные в формате PDF.

Но после долгих попыток и нескольких тестов выяснилось, что рендеринг PDF на Android ужасно медленный, особенно на бюджетных устройствах.

Так что мне интересно, есть ли способпоказывать эти изображения непосредственно вместо PDF, но все равно показывать их как «книгу», так что технически это «просмотрщик изображений», но пользователь этого не замечает.Является ли это возможным?

Буду признателен за любую помощь.Спасибо!

Ответы [ 2 ]

1 голос
/ 19 февраля 2011

PDF состоит не из изображений, а из векторов, есть способ конвертировать его в файлы изображений.

Существует пара конвертеров java PDF в изображения с открытым исходным кодом, хотя:

http://www.jpedal.org/

http://code.google.com/p/pdfonejava/

Я уверен, что есть еще, но вам придется их найти.

Тогда просто кешируйтеэти изображения, и есть несколько программ просмотра изображений с открытым исходным кодом для Android, таких как:

http://code.google.com/p/android-mysample-project/source/browse/trunk/ARCamera/src/net/android/sample/imageviewer/ImageViewer.java?spec=svn9&r=9

Это то, к чему вы стремитесь, или я полностью отключен?

0 голосов
/ 17 августа 2012
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    PdfReader reader;
    File file = new File("/sdcard/vineeth/anni.prc");
    try {
        reader = new PdfReader(file.getAbsolutePath());
        for (int i = 0; i < reader.getXrefSize(); i++) {
            PdfObject pdfobj= reader.getPdfObject(i);
            if (pdfobj == null || !pdfobj.isStream()) {
                continue;
            }
            PdfStream stream = (PdfStream) pdfobj;
            PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE);
            if (pdfsubtype != null && pdfsubtype.toString().equals(PdfName.IMAGE.toString())) {
                byte[] img = PdfReader.getStreamBytesRaw((PRStream) stream);
                FileOutputStream out = new FileOutputStream(new File(file.getParentFile(), 
                String.format("%1$05d", i) + ".jpg"));
                out.write(img);
                out.flush();
                out.close();
            }
        }
    } catch (Exception e) {
        // TODO: handle exception
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...