Информационный портал
pocket versionPOCKET  wikiWIKI  FAQFAQ  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения  ВходВход

Вопрос про картинки
На страницу 1, 2, 3  След.
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> FB - разработка и программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Сб Фев 17, 2007 14:27    Заголовок сообщения: Вопрос про картинки Ответить с цитатой

А можно "текст" картинки (тот, что base64'ный код) - прямо в картинку втыкать? Сейчас вроде бы низя, а в будущем такое сделать? Было бы удобно. А то сейчас читаю заголовки (инфу о книгах), чтобы создать индекс для показа списка. И получается, что нужно парсить файлы целиком. Накладно получается. Особенно если этих картинок в файле - ну, зззавались.

А так открыл - прочитал начало - бросил, пошел дальше читать.

Я сделал кэш такой в своём формате (я там правда еще картинки пережимаю, разрешение уменьшаю для уменьшения размера, сохраняю в бинарном виде), так ускорение просто катастрофическое. ФБ2 читается "тыртыртыр", а кэш - "вжжж". Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


GribUser
Автор формата FB2 - Автор библиотеки FB

Автор формата FB2 - Автор библиотеки FB

Зарегистрирован: 30.09.2004
Сообщения: 2475
Откуда: Москва

СообщениеДобавлено: Сб Фев 17, 2007 15:09    Заголовок сообщения: Ответить с цитатой

Теперь уж наврят.
Тут еще такой момент, что использование отдельного хранилища позволяет использовать ту же картинку много раз, что для каких-нить псевдобукв, например, архиважно. То есть, разнесенное хранение так и так у нас должно быть. А иметь два механизма для одного и того же явно избыточно, только алгоритмы засорять. Решение компромисное, возможно, но во всяком случае простое.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Сб Фев 17, 2007 15:38    Заголовок сообщения: Ответить с цитатой

Ну почему, вроде принципиально ничто не мешает разрешить перемешивать тэги <body> и <binary> в произвольном порядке, и размещать картинку содержащую coverpage между <description> и первым <body>.
Или я неправильно понял?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


GribUser
Автор формата FB2 - Автор библиотеки FB

Автор формата FB2 - Автор библиотеки FB

Зарегистрирован: 30.09.2004
Сообщения: 2475
Откуда: Москва

СообщениеДобавлено: Сб Фев 17, 2007 16:07    Заголовок сообщения: Ответить с цитатой

Mike Sinkovsky писал(а):
Ну почему, вроде принципиально ничто не мешает разрешить перемешивать тэги <body> и <binary> в произвольном порядке, и размещать картинку содержащую coverpage между <description> и первым <body>.
Или я неправильно понял?

а, так вот... Ну это да, действительно решение. Хотя теперь уже, думается, поздновато так делать, я вот на вскидку вспомню несколько скриптов у себя, которые совершенно не факт, что такое смещение переживут... Но для fb3, вероятно, стоит как минимум подумать об этом. Потестировать с разным софтом и посмотреть, что получится - мой fb2any, к примеру, спокойно должен такой сдвиг пережить. Но если софт будет падать и глючить - не получится уже, увы.
Но я так понял там речь о другом шла, чтобы прямо в <img>base649087ad80ad</img> колбасить. Это, думается, неправильно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Сб Фев 17, 2007 16:27    Заголовок сообщения: Ответить с цитатой

GribUser
Ну, если делать ссылки на картинки и сами картинки, то запросто. Картинка объявляется (прописывается) при первом к ней обращении, а потом просто идут ссылки.

Но это мне и самому не очень нравится. А вот если <binary> прописывать прямо внутри <image> - это было бы очень интересно.

Как такая мысль?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Admin
Администратор информационного портала FB

Администратор информационного портала FB

Зарегистрирован: 11.06.2004
Сообщения: 1610
Откуда: Воронеж

СообщениеДобавлено: Сб Фев 17, 2007 23:58    Заголовок сообщения: Ответить с цитатой

GribUser писал(а):
Ну это да, действительно решение. Хотя теперь уже, думается, поздновато так делать, я вот на вскидку вспомню несколько скриптов у себя, которые совершенно не факт, что такое смещение переживут... Но для fb3, вероятно, стоит как минимум подумать об этом. Потестировать с разным софтом и посмотреть, что получится - мой fb2any, к примеру, спокойно должен такой сдвиг пережить. Но если софт будет падать и глючить - не получится уже, увы.

А стоит ли игра свеч, вносить сумятицу в существующую схему, где все так хорошо разложено по полочкам? И ради чего? Через DOM надо работать и парсить не придется построчно весь документ.
babaev писал(а):
А вот если <binary> прописывать прямо внутри <image> - это было бы очень интересно.

Ну вот захотел я буквицы прописать в каждом абзаце. Их все 32. А абзацев 1000. Дальше надо объяснять? Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Фев 18, 2007 0:07    Заголовок сообщения: Ответить с цитатой

Admin
DOM - не панацея. Я уже про это говорил. Почему к дому-то привязка такая бешеная? Не хочу я использовать DOM. По достаточному большому количеству причин... А то получается, если нет DOM'а, то и FB2 - не читается? Странный подход.

А про буквицы - я уже сказал. Дать возможность просто binary прописывать внутри тэга image. И всё. И ссылаться на этот binary так же. Просто он будет находиться в другом месте, а не железно внутри FictionBook.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


GribUser
Автор формата FB2 - Автор библиотеки FB

Автор формата FB2 - Автор библиотеки FB

Зарегистрирован: 30.09.2004
Сообщения: 2475
Откуда: Москва

СообщениеДобавлено: Вс Фев 18, 2007 0:16    Заголовок сообщения: Ответить с цитатой

babaev писал(а):
Как такая мысль?

Надо подумать. Что-то совсем не уверен я, что вы так уж много от такого размещения выиграете. А беспорядку прибавится ощутимо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Фев 18, 2007 0:44    Заголовок сообщения: Ответить с цитатой

GribUser
Я только как "на подумать". Я уже сделал кэш в своём формате (повторяюсь).

Есть ведь два типа картинок. Одни повторяются лишь однажды. Вторые - многократно. Например те же буквицы. Буквицы - можно указывать где угодно, это абсолютно всё-равно. Любое расположение будет одинаково. А вот те, что встречаются один раз - я бы втыкал прямо по месту жительства. Потому что в других местах они не нужны вообще.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Admin
Администратор информационного портала FB

Администратор информационного портала FB

Зарегистрирован: 11.06.2004
Сообщения: 1610
Откуда: Воронеж

СообщениеДобавлено: Пн Фев 19, 2007 0:35    Заголовок сообщения: Ответить с цитатой

babaev писал(а):
А то получается, если нет DOM'а, то и FB2 - не читается?

Просто без дома придётся шерстить весь файл, а так конечно, можно, но не очень это хорошо получается. А схема завтра изменится? С домом просто - обработку новых элементов/атрибутов добавил и все. А твоим способом? У меня большие сомнения. Впрочем, код не смотрел, может там новый подход? Но не понятно, зачем изобретать велосипед?
И не понятно, почему должны лежать картинки не там где им положено - в подвале файла, а беспорядочно раскиданными по всему документу. Глазками тоже приходится работать с документом, особенно при поиске ошибок, а тут бинарники по документу раскиданы? А что, кроме DOM нет способа быстро найти секцию <binary>?
Я просто хочу понять почему автомобиль нас устраивает, но на бензине ездить не будем, мы по-старинке - на дровах? Или я что-то не понимаю?
(Я понял, что речь идет об обработке документа, как обычного текста, или я ошибаюсь?)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Пн Фев 19, 2007 0:47    Заголовок сообщения: Ответить с цитатой

Admin
Дом тоже всё шерстит Smile

Мой способ настолько же просто поменять, как и обработку дома. Там примерно одинаково. А, например, если правильно закодировать SAX, то его вообще не нужно будет менять.

Дом не плох. Просто это не единственное решение. И не всегда возможное. Это просто стереотип такой Smile Что с домом - проще работать в XML. А как только появляются файлы, которые в DOM'е, увеличившись в 5-10 раз, начинают занимать по 200-400 метров - начинаешь задумываться.

Еще раз. Я хочу сделать читалку для мобильников. На мобильниках - нет достаточного количества памяти для дома. Просто нет. А файлы читать хочется, даже большие и с картинками. Поэтому для меня дом - это пройденный этап.

Плюс, по дому часто плохо делать навигацию. Попробуйте проитерировать элементы. Это уже - обход дерева в глубину. Но это фигня. А вот сделать обратное итерирование, если, например, нет обратных итераторов - это секс еще тот.

Так что дом - это хорошо. Повторюсь, для редактирования дом - это идеальное решение в 98% случаев (кроме очень огромных файлов, но их наверное и не будет пока). Но для читалок - это достаточно некорректное решение. Неудобное минимум.

Добавлено спустя 46 секунд:

Да, и еще. Книга редактируется один раз. А читается - тысячи. Может, стоит хотя бы чуть чуть соптимизировать формат для чтения?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Admin
Администратор информационного портала FB

Администратор информационного портала FB

Зарегистрирован: 11.06.2004
Сообщения: 1610
Откуда: Воронеж

СообщениеДобавлено: Пн Фев 19, 2007 1:06    Заголовок сообщения: Ответить с цитатой

Кстати, насчёт картинки - это две команды (ну, не считая обработки на ошибки):
List := Doc.getElementsByTagName('description/title-info/coverpage/*');
Здесь находим ссылку, а дальше
List := Doc.getElementsByTagName('binary');
И вытягиваем бинарник. И совершенно все равно, где он находится.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Пн Фев 19, 2007 1:08    Заголовок сообщения: Ответить с цитатой

Admin
Это если дом уже построен. А для того, чтобы построить дом - нужно прочитать весь файл. Чего, собственно, я хочу избежать. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Admin
Администратор информационного портала FB

Администратор информационного портала FB

Зарегистрирован: 11.06.2004
Сообщения: 1610
Откуда: Воронеж

СообщениеДобавлено: Пн Фев 19, 2007 1:14    Заголовок сообщения: Ответить с цитатой

babaev писал(а):
А как только появляются файлы, которые в DOM'е, увеличившись в 5-10 раз, начинают занимать по 200-400 метров - начинаешь задумываться.

Это книги должны быть по 40-80 метров.
babaev писал(а):
Еще раз. Я хочу сделать читалку для мобильников. На мобильниках - нет достаточного количества памяти для дома. Просто нет. А файлы читать хочется, даже большие и с картинками. Поэтому для меня дом - это пройденный этап.

Опа. Тут не спорю. Просто опыта делать под мобильник нет.
babaev писал(а):
Но для читалок - это достаточно некорректное решение.

Я считал, что для читалок лучше SAX, но чисто теоретически Smile И все же какой механизм обработки документа ты используешь, если не секрет?

Добавлено спустя 6 минут 42 секунды:

babaev писал(а):
А для того, чтобы построить дом - нужно прочитать весь файл.

Просто загрузить в DOM один раз и работать с деревом. Я не совсем понял, зачем нужна обратная итерация. Текст книги - зашел в body и по слою с первого элемента обрабатывая до самого низа вытягиваешь весь необходимый текст (три-четыре страницы) отображаешь первую, как читатель попадает на вторую и читает, тянешь незаметно пятую. Это я теоритезирую. С ридерами еще не возился. Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Пн Фев 19, 2007 1:27    Заголовок сообщения: Ответить с цитатой

Admin
Мне уже прислали книгу на 6 метров. Там много картинок Smile А между 6 и 40 - уже не сильно большая разница. Так что будут... Интересно, как их будут редактировать Smile

Я использую так называемый StAX. Streaming API for XML. Если в саксе мне в приложение выдают "события", которые я обрабатываю, то в StAX'е - я сам говорю "дай следующий элемент". То есть читаю, как из потока. Это лично мне - удобнее. Хотя само решение достаточно сильно схоже с SAX.

Ну, и генерю в памяти "образ" документа. Но, в отличие от иерархического ДОМа - линейный. Двусвязный список. После чего бегаю по нему.

А на мобилах - буду либо маппировать файл с этой структурой и бегать по файлу, если будет доступно соответствующее решение, либо буду бегать по файлу напрямую. RandomAccessFile вроде был. Еще не решил, будет зависеть от того, насколько всё плохо под JME.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> FB - разработка и программирование Часовой пояс: GMT + 3
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group