![]() |
|
|
![]()
|
|
| gif0 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.11.2009 Репутация: нет Всего: нет |
Я загружаю изображение (JPG или GIF) в компонент типа TImage и в коде пытаюсь получить доступ к битовой матрице изображения:
При запуске приложения выскакивает ошибка: Project Project1.exe raised exception class EInvalidOperation with message 'Can only modify an image if it contains a bitmap'. Почему, и как это исправить? Это сообщение отредактировал(а) gif0 - 27.12.2009, 17:53 |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
По-моему, всё логично. У JPG и GIF нет битовой матрицы. Вам нужно перегнать изображение в битмап, произвести операции, а потом обратно в нужный формат.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| smoke_man |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 25.1.2007 Где: Рязань Репутация: 9 Всего: 17 |
Как пример:
-------------------- 0x2b|~0x2b |
|||
|
||||
| gif0 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.11.2009 Репутация: нет Всего: нет |
artsb, как перегнать изображение в битмап?
smoke_man , а как сделать этот код универсальней, что бы можно было не только JPG загружать? Это сообщение отредактировал(а) gif0 - 27.12.2009, 19:22 |
|||
|
||||
| smoke_man |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 25.1.2007 Где: Рязань Репутация: 9 Всего: 17 |
Насколько я знаю компонент Image поддерживает ico, jpg,bmp. GIf поддерживается с 2007, могу конечно ошибаться. И все равно какой бы ты формат не грузил - для доступа к битовой матрице придется преобразовывать его в bmp, если работать с компонентом Image. Можно, например, по расширению файла вызывать тот или иной метод преобразования.
-------------------- 0x2b|~0x2b |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
smoke_man выше написал.
ИМХО никак. ещё EMF и WMF. gif0, для работы с любыми другими форматами, кроме BMP, нужно подключать соответствующие модули. Для JPG такой уже есть. А вот для GIF, PNG и т.п. придётся искать. Это сообщение отредактировал(а) artsb - 27.12.2009, 20:53 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| gif0 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.11.2009 Репутация: нет Всего: нет |
Спасибо, разобрался
|
|||
|
||||
| gif0 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.11.2009 Репутация: нет Всего: нет |
Еще вопрос, как можно Image1->Canvas->Pixels[0][0] присвоить значение цвета? Может, есть функция, принимающая три значения (Red,Green,Blue) и возвращающая значение типа TColor, что-то вроде этого:
TColor a = RGB(5,20,1); Image1->Canvas->Pixels[0][0] = a; Это сообщение отредактировал(а) gif0 - 27.12.2009, 22:32 |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
это оно и есть. Только можно так:
Это сообщение отредактировал(а) artsb - 27.12.2009, 22:49 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Ну по чему же. Кто же нам запрещает определять расширение файла - и собственно - по этому расширению использовать соответствующую библиотеку. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
А. Ну если только так.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |