Сейчас на форуме: kris_sexy, Wenzel, r0lka (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Как, не загружая JPEG, узнать его размер в байтах?
Посл.ответ Сообщение

Ранг: 7.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 19 февраля 2006 07:41
· Личное сообщение · #1

Просто как-то писал программу-выдиральщик форматов (не ругайте, знаю, что велосипед, просто для опыта) и не смог узнать, как определить размер файла JPEG (не загружая, конечно - по внутренностям). Хотя читал и спецификацию, и исходники, ответа не нашел.
Поэтому в программе приходится искать JPEG от заголовка к заголовку и она вырезает Thumbnail'ы и портит файл.




Ранг: 124.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 19 февраля 2006 20:42
· Личное сообщение · #2

жипег начинается FFD8 и заканчивается FFD9



Ранг: 7.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 февраля 2006 13:58
· Личное сообщение · #3

Неа, мне надо точный размер.
А есть гарантия, что FFD8 и FFD9 не содержится в потоке данных JPEG'а?
И как быть с вложенными JPEG в JPEG - проблема не решена.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 февраля 2006 14:02
· Личное сообщение · #4

Реализация на Delphi...

4ebd_jpeg.txt.zip

-----
Yann Tiersen best and do not fuck




Ранг: 7.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 февраля 2006 14:44 · Поправил: Grom PE
· Личное сообщение · #5

В байтах надо, в байтах. Размер в пикселах мне не нужен.
Повнимательней, товарищ.

2009 EDIT: Для получения размера JPEG нужно просто пройтись по его блокам, от FF D8 до FF D9.
Ответ Nitrogen'а был правильный, просто в 2006-м году я его не понял.
Структура JPEG очень простая. http://ru.wikipedia.org/wiki/JPEG#.D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D0.B8_.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D0.B0


 eXeL@B —› Крэки, обсуждения —› Как, не загружая JPEG, узнать его размер в байтах?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати