Решение проблемы совмещения _graphics32_ и _AggPasMod_ для отображения bitmap и векторных изображенийDelphi , Графика и Игры , Векторная графикаВ современном программировании на Object Pascal (Delphi) часто возникает потребность совмещать отображение bitmap и векторных изображений в одном приложении. Одним из способов решить эту проблему является использование библиотек graphics32 и AggPasMod. Однако, у многих разработчиков могут возникнуть трудности с совмещением этих двух библиотек, так как они работают с разными типами изображений. В данной статье мы рассмотрим, как совместить graphics32 и AggPasMod для отображения bitmap и векторных изображений в Delphi XE и более поздних версиях. Понимание проблемыПользователь хочет отображать bitmap-изображение с наложенными границами между пикселями, цвет которых определяется пользовательской рутиной. При зумировании и перемещении граница должна сохранять свою толщину. Для зумирования и перемещения пользователь использует библиотеку graphics32, а для отрисовки границ他想 использовать AggPasMod. Однако, у него возникли трудности с совмещением этих двух библиотек, так как AggPasMod работает со своим типом изображения - TAgg2DImage, который он не знает, как отобразить в TImage, а graphics32 позволяет отображать только TBitmap. Подтвержденный ответСуществует несколько способов совместить graphics32 и AggPasMod для отображения bitmap и векторных изображений. Мы рассмотрим два из них. Способ 1: Использование GR32 с поддержкой векторной графикиОдним из решений является использование последней версии GR32 с поддержкой векторной графики. В версии 2.0 была добавлена поддержка векторной графики, что позволяет совмещать bitmap и векторные изображения в одном приложении. Для начала, нужно переключиться на последнюю версию GR32. Код можно получить из открытого SVN-репозитория по адресу: https://sourceforge.net/p/graphics32/code/HEAD/tree/trunk/. После получения кода, можно начать изучать примеры, чтобы понять, как использовать векторный движок. В частности, обратите внимание на примеры под названием "Polygons" в папке "Examples\Drawing". Для создания векторной графики можно использовать следующий код:
Также можно использовать низкоуровневый API, который находится в единице "GR32_Polygons". Тот же код будет выглядеть так:
Способ 2: Отрисовка границ поверх bitmap-изображенияДругой способ состоит в отрисовке границ поверх bitmap-изображения. Для этого можно использовать следующий подход:
При таком подходе вы рисуете границы поверх выходного изображения, что позволяет менять ширину границы независимо от степени зумирования фонового изображения. Альтернативный ответЕсли пользователь хочет сохранить границы постоянной ширины при зумировании, ему придется перерисовывать границы при каждом изменении зумирования. Однако, пользователь может добавить таймер, чтобы Пользователь хочет совместить библиотеки _graphics32_ и _AggPasMod_ для отображения bitmap и векторных изображений в Delphi XE и более поздних версиях, но испытывает трудности из-за различий в типах изображений, с которыми работают эти библиотеки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Векторная графика ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |