Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование binmode 
:(
    Опции темы
FrenchCheese
Дата 11.10.2011, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 8.9.2010

Репутация: нет
Всего: нет



есть несколько картинок, мне надо взять их содержимое и проанализировать
пытаюсь использовать этот код

Код

open(BMP, "dog.bmp");
binmode BMP;

while (<BMP>) {
   $image.=$_;
   
}
print $image;



вопрос в том, как правильно использовать binmode? как увидеть мне должгожданные цифры?

Это сообщение отредактировал(а) FrenchCheese - 14.10.2011, 09:21
PM MAIL   Вверх
arto
Дата 11.10.2011, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



какие цифры вы ожидаете?
PM MAIL ICQ   Вверх
FrenchCheese
Дата 11.10.2011, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 8.9.2010

Репутация: нет
Всего: нет



http://c-site.h1.ru/infa/bmp_struct.htm
а что ожидать надо?
PM MAIL   Вверх
shamber
Дата 11.10.2011, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



FrenchCheese, вы дагадываетесь, что буквы в приведенном вами результате, это тоже цифры?
PM MAIL Jabber   Вверх
ginnie
Дата 11.10.2011, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



FrenchCheese, посмотрите  как разбор заголовка сделан в модуле Image::Info::BMP


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
kotkota23
Дата 11.10.2011, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.9.2011

Репутация: нет
Всего: нет



shamber, конечно! только чтение без binmode и c binmode возвращает одинаковый результат
мне и интересно что я не так делаю


ginnie, спасибо, почитаю!
PM MAIL   Вверх
FrenchCheese
Дата 14.10.2011, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 8.9.2010

Репутация: нет
Всего: нет



разобрал заголовок
по этой табличке всё расписал
http://c-site.h1.ru/infa/bmp_struct.htm

но вот неясно
размер заголовка BITMAP поидее должен быть 40, а у меня 108
это значит что  в этом промежутке BITMAPV5HEADER?


я решил не тормозить долго за заголовком, а попутно начать разбирать изображение
в массиве @header лежат все заголовочки по порядку (как в первой ссылке) заголовка файла и заголовка BITMAP
$header[1] - размер файла в байтах, $header[4] - смещение с которого начинается изображение
мое изображение 32битное, а значит не имеет палитры и 4 байта определяют 3 компоненты BGR и Alpha
конкретно мое изображение имеет размер 48х48, поэтому я решил разобрать 1 строку :

Код

read (BMP, $data, $header[1]-$header[4], $header[4]);
@image = unpack("C192", $data);
print "@image";


на консоль вот что вывело
http://saveimg.ru/show-image.php?id=6126fb...8cd8d7b5d109595
хотя я делаю разбор вот такой картинки
http://saveimg.ru/show-image.php?id=26c569...624b377ac9aab82

и вот вопрос, моя ошибка в неправильной трактовке, неверном понимании формата или в незнании языка?
PM MAIL   Вверх
arto
Дата 14.10.2011, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



PM MAIL ICQ   Вверх
FrenchCheese
Дата 14.10.2011, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 8.9.2010

Репутация: нет
Всего: нет



arto, как бы я написал разбор заголовка, если бы не читал вики и прочие статьи?
PM MAIL   Вверх
arto
Дата 14.10.2011, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



тогда откуда вопрос "но вот неясно
размер заголовка BITMAP поидее должен быть 40, а у меня 108
это значит что  в этом промежутке BITMAPV5HEADER?"

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1317 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.