Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Реализация прозрачности PNG в Graphics32 2.0 с Delphi 12

Delphi , Графика и Игры , GIF

Реализация прозрачности PNG в Graphics32 2.0 с Delphi 12

В последнем обновлении библиотеки Graphics32 произошли изменения, в результате которых старые способы загрузки PNG изображений с прозрачностью больше не работают. В данной статье мы рассмотрим, как можно решить эту проблему, используя версию Graphics32 2.0 в сочетании с Delphi 12.

Понимание проблемы

Пользователь обновил библиотеку Graphics32 до последней версии и столкнулся с проблемой: его код перестал компилироваться, так как в новых единицах GR32_PortableNetworkGraphic и GR32_PNG больше не существует упоминания о поддержке PNG. Это привело к потере прозрачности изображений при попытке загрузки PNG с ресурсов.

Шаг 1: Исправление кода

Исходный код, который пользователь пытался использовать, выглядел следующим образом:

uses
    GR32, GR32_Image;

var
   Logo: TResourceStream;

Logo := TResourceStream.Create(MainInstance, 'MyLogo', RT_RCDATA);
try
    Image32Logo.Bitmap.LoadFromStream(Logo);
finally
    Logo.Free;
end;

Однако, несмотря на то, что изображение загружалось, прозрачность терялась.

Шаг 2: Использование метода LoadFromResource

SilverWarior предложил использовать метод LoadFromResource, который позволяет указать тип загружаемого ресурса. Вот пример исправленного кода:

uses
    GR32, GR32_Image;

var
   Logo: TResourceStream;

Logo := TResourceStream.CreateHGlobal(MainInstance, 'MyLogo', RT_RCDATA);
try
    Image32Logo.Bitmap.LoadFromResource(Logo, RCFMT_PNG);
finally
    Logo.Free;
end;

Здесь RCFMT_PNG — это константа, указывающая на формат PNG.

Шаг 3: Возвращение версионных тегов

По словам пользователя AlexV, решение может быть в том, чтобы не использовать тег последней версии (2.0 Final), так как в ветке master, где версии файлов обозначены как 3.0, отсутствующие файлы доступны.

Альтернативное решение

Если предыдущие шаги не помогли, можно попробовать клонировать ветку master для получения доступа к файлам с версией 3.0, где, возможно, проблема уже решена.

Заключение

Важно помнить, что при обновлении библиотек и инструментов могут возникать несоответствия, требующие дополнительных настроек или корректировки кода. В случае с Graphics32 для Delphi, использование метода LoadFromResource и обновление до последней версии файлов из ветки master может решить проблему с прозрачностью PNG изображений.

Приведенные примеры кода можно использовать в качестве отправной точки для дальнейшей разработки и настройки вашего проекта на Delphi 12 с использованием последней версии Graphics32.

Создано по материалам из источника по ссылке.

Описание контекста: В статье рассматривается проблема потери прозрачности PNG изображений после обновления библиотеки Graphics32 в Delphi 12 и предлагаются способы её решения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: GIF ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:23:28/0.0054929256439209/1