![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Pavelbej |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 419 Регистрация: 5.7.2005 Репутация: нет Всего: 6 |
В листбокс-е находятся изображения (путь и имя файла). Этот код (создание Bitmap-a) делается только для того чтобы узнать разрешение изображения (GetBitmapDimensionsString(MyBitmap)) но что-то мне подсказывает что нужно что-то другое. Помогите, если можете, файлов много и тормозит жутко. Заранее всем благодарен в решении этой проблемы.
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
А нельзя ли просто
Image1.Picture.LoadFromFile(ListBox1.Items[ListBox1.itemindex]); GetBitmapDimensionsString(Image1.Picture.Bitmap); -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Вот самый быстрый способ
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Pavelbej |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 419 Регистрация: 5.7.2005 Репутация: нет Всего: 6 |
alexeis1, большое спасибо, вот только резолюцию этот код показывает не как например "1024 х 768", а какието цифры при том что файлы имеют одинаковую резолюцию. Вот примерно что у меня "-318832640 х 1967395072", "-168427523 х 1380137728" и оба файла тот же размер имеют по горизонтали и вертикали, оба файла - .jpg, первый весит 47 Кб - второй 88 Кб (на всякий случай).
В чем причина может быть? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Pavelbej, Этот код работает только для BMP. Для JPG надо устанавливать другое смещение
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Pavelbej |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 419 Регистрация: 5.7.2005 Репутация: нет Всего: 6 |
Покажи пример пожалуйста. И прокоментируй код если тебе не трудно а то для меня это вче ново.
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
TJPEGImage не?
в нем есть и высота и ширина ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
sorry, no comments...
![]()
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Ничего сложного если знать формат файла, то для получения разрешения не нужно загружать изображение полностью, достаточно знать где в этом файле хранится значение высоты и ширины. В BMP, эти положения фиксированы. После заголовка FileHeader идет InnfoHeader, второе и третие поля которого высота и ширина, вот я и пропустил все ненужные данные и перескочил прямо к ним. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Pavelbej |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 419 Регистрация: 5.7.2005 Репутация: нет Всего: 6 |
dumb, я попробовал, вроде все нормально но у некоторых файлов разрешение отображается неправильно, почему не знаю.
Вот я что нашел но это для (( Dots Per Inch )) и (( Dots Per Cm)). Посмотрите может измените код чтобы узнать горизонтальный и вертикальный размер изображения в пикселях:
|
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
покажи(прикрепи, выложи куда-нибудь) пару файлов, у которых неправильно отображается разрешение.
|
|||
|
||||
Pavelbej |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 419 Регистрация: 5.7.2005 Репутация: нет Всего: 6 |
||||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
В любом случае все перечисленные способы мягко говоря некорректны! Добавлено @ 17:16 Нельзя запускать простой поиск, поскольку среди значений даннных могут встречатся указанные комбинации. Вот ссылка на подробное описание формата на русском языке http://www.matrix-wb.h1.ru/article/formats/jpeg-rus.html Смотрите вконце описание "SOF0: Начало Кадра 0:" Разбор надо вести сегменрами а не байтами, тогда точно попадете на нужные места и не будет случайных совпадений вызывающих ложную остановку поиска! Это сообщение отредактировал(а) alexeis1 - 26.7.2006, 17:26 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
разбор идет побайтно, однако... просто та функция, которую я нашел, не учитывает некоторые моменты: такие как exif, thumb'ы итд... |
||||
|
|||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
эм. что такое "искомый сегмент" и чем он определяется? и откуда ты взял "размер сегмента" для сдвига? вот в тех "неправильных" картинках по три блока SOF0 - какой из них нужный?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |