| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Как рисовать на TImage |
| Автор: wesadex 26.12.2005, 15:20 |
| Есть TImage, в котором загружена GIFка... при попытке рисовать на канве этого TImage вываливается EInvalidOperation дескать "Рисовать на канве можно только если Image содержит Bitmap"... Что-то ничего не нашел по данному вопросу, подскажите люди добрые, как реализуется сие простое действо (или не простое?)! |
| Автор: wesadex 26.12.2005, 16:10 | ||
EInvalidOperation: "Can only modify an image if it contains a bitmap" вызывает следующий код:
Я видимо не дословный перевод сообщения привел, а зря... т.е. видимо оно жалуется на то, что Image не содердит Bitmap'ов... хотя картинка в него уже загружена! Как думаете господа из-за чего этот траббл? |
| Автор: Snowy 26.12.2005, 16:28 | ||
Ну вот пример для jpeg'a:
|
| Автор: wesadex 26.12.2005, 16:49 |
| У меня гифы да и хочется понять суть проблемы... Картинка грузится в Image вот так: Image.Picture.LoadFromFile(FileName);... очень не хочется утяжелять прогу разбором того, какой формат картинки грузим и индивидуальным способом загрузки - прога-то мелкая... |
| Автор: Snowy 26.12.2005, 17:05 | ||
|
| Автор: wesadex 27.12.2005, 10:25 |
| Спасибо - подходит для всех форматов, которые мне нужны - для Веб-изображений! А все-таки кто-нибудь может объяснить почему вылезала эта ошибка? |
| Автор: Snowy 27.12.2005, 10:30 |
| Ошибка вылезала, потому что изображение не было преобразовано в BitMap, а работало через адаптер. Битмап по сути был пустой. Вообще не задействован. В этом решении я беру изображение, созданое адаптером, кладу его в битмап. А потом этот битмап назначаю обратно TImage. В результате TImage отключает адаптер и работает как обычно напрямую с битмапом. |
| Автор: wesadex 27.12.2005, 14:37 |
| Осознал, но вот что не укладывается в схему на мой взгляд: Пустой битмап может быть и тогда когда Image просто положили на форму, но в этой ситуации Image позволяется работать в канвой... или я просто чего-то не понимаю? |
| Автор: Snowy 27.12.2005, 14:42 |
| Просто при работе с адаптером, имадж переключается на него, а битмап игнорирует. Попытка рисовать на канве имаджа заканчивается неуспехом, т.к. битмап недоступен - отображается информация адаптера, а она ридонли. Можно попробовать рисовать на канве битмапа. В данном случае, я думаю, адаптер просто отключится, картинка пропадет и активируется битмап. |
| Автор: wesadex 28.12.2005, 11:21 |
| Так и было - пробовал пользовать Image1.Picture.Bitmap.Canvas - картинка пропадала, а на канве появлялся рисунок! Спасибо! |