VBA и параметры графических файлов

  • Автор темы Автор темы dizzy
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

dizzy

Участник
Топикстартер
Сообщения
425
Реакции
1
Можно ли как-нить не открывая графический файл (тиф или епс) узнать о его параметрах (ширина и высота). И если да то через что?

Видити ли я этот вопрос решил через импорт в корел - долго и как-то через ж... Может есть другие пути? очень надо!
 
Ответ: VBA и параметры графических файлов

Через нутренности. Считать файл к поток и вычленить необходимые параметры. Для EPS/PDF/JPEG это довольно просто, для TIFF где-то когда-то встречал описания, где чего смотреть.
 
Ответ: VBA и параметры графических файлов

А можно по-подробнее? Если уж это действительно просто. Или может ссылочку дадите туда, где подобные вопросы уже разбирались. Буду премного благодарен.
 
Ответ: VBA и параметры графических файлов

Voh! сказал(а):
Или может ссылочку дадите туда, где подобные вопросы уже разбирались. Буду премного благодарен.
Яндекс и 5 минут делов - получаем ссылку на описание формата TIFF

А адрес http://www.wotsit.org/ надо всем в закладки!
 
Ответ: VBA и параметры графических файлов

На тулбоксе, видимо, надо будет сделать, что-то вроде каталога ссылок.
 
Ответ: VBA и параметры графических файлов

С EPS-ом разобрался. Там вторая строка с верху "%%BoundingBox:" с четырьмя магическими числами: X0 Y0 X1 Y1. Так вот если разницу (X1 - X0) поделить на хитрое число 2.8347 (выведено опытным путем), то получаем ширину епса. Аналогично и с высотой.

А вот на тиф мозгов видать мало. Описание формата получил, смотрел. Вроде все прописано, к примеру с шириной так:
ImageWidth
Tag = 256 (100h)
Type = SHORT or LONG
Length = 1
Однако каким макаром считать - так и не понял. В инструкции по VBA грят про три типа файлов: последовательный, произвольный и бинарный. Логика подсказывает что тиф относится к третьему типу. Открываем через Open "" For Binary (или Random?) As 1... Считываем получается через Get #1, n, myWidth... Однако n у нас по справке либо 3 либо 4 байта (Type = SHORT or LONG). И уж совсем не понятно как прописать что надо именно ImageWidth, а не что-то другое. Через Seek #1, k ? Возможно, но что тогда надо писать вместо k (256, 100h и "100h" - не канают)?

Конечно для кого-то я выгляжу глупо, но если есть желание че-нить прояснить в моей голове, то буду признателен.

За ссылки спасибо!
 
Ответ: VBA и параметры графических файлов

dizzy сказал(а):
поделить на хитрое число 2.8347 (выведено опытным путем)
И долго пришлось выводить? :) 1 дюйм = 2.54 см = 72 пункта. Вот отсюда ваше хитрое число.
 
Ответ: VBA и параметры графических файлов

svlasov сказал(а):
И долго пришлось выводить? :) 1 дюйм = 2.54 см = 72 пункта. Вот отсюда ваше хитрое число.
Если бы так, однако 2.54<>2.8347 это раз. Во-вторых поделив на онное получаем величину в мм, а не в см. Поэтому число и вправду хитрое.
 
Ответ: VBA и параметры графических файлов

dizzy сказал(а):
Если бы так, однако 2.54<>2.8347 это раз. Во-вторых поделив на онное получаем величину в мм, а не в см. Поэтому число и вправду хитрое.
Еще раз: 72/25.4=2,834646. Это соотношение пунктов и миллиметров.
 
Ответ: VBA и параметры графических файлов

svlasov сказал(а):
Еще раз: 72/25.4=2,834646. Это соотношение пунктов и миллиметров.
Хм... Правда дурак
 
Статус
Закрыто для дальнейших ответов.