В каком модуле находится TPNGImage?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
arra
новенький
Сообщения: 27
Зарегистрирован: 30.03.2013 22:58:27

В каком модуле находится TPNGImage?

Сообщение arra »

Добрый день.
Есть Timage, на который надо рисовать png-шки (именно, png-шки, важна прозрачность!). Наткнулся на freepascal.org на код:

Ocean := TPNGImage.Create;
Ocean.LoadFromFile(CurrentDir + '/images/ocean.png');

Но не могу найти, в каком модуле находится TPNGImage! Даже гугл не в курсе.

Убунту 14.04, Lazarus 1.2.2
hovadur
постоялец
Сообщения: 116
Зарегистрирован: 31.01.2013 15:50:41

Сообщение hovadur »

Такой код может грузить bmp, gif, png, jpg:

Код: Выделить всё

var
  Img: TPicture;
  Bmp: TBitmap;
begin
  Img := TPicture.Create;
  Img.LoadFromFile(Filename);
  Bmp.Assign(Img.Graphic);
  ImageList1.Add(Bmp, nil);

А так, смотри модуль LazPNG, но он deprecated.
arra
новенький
Сообщения: 27
Зарегистрирован: 30.03.2013 22:58:27

Сообщение arra »

А так, смотри модуль LazPNG, но он deprecated.

Ругается, что нет такого модуля. Похоже, успели выпилить.

ImageList1.Add(Bmp, nil);


Не понял, причём здесь список изображений? Есть здоровенный Timage, на котором в случайном порядке надо размещать более мелкие изображения шестиугольной формы. Поскольку шестиугольные изображения не существуют, они в png и всё что за пределами шестиугольника - прозрачное.

То есть нужно как-то так:

Код: Выделить всё

Считать png-шку.
Разместить её по центру Timage.
Считать вторую png-шку.
Разместить её выше первой.
Считать третью png-шку.
Разместить её в Timage ниже первой.
и так далее.
iskander
энтузиаст
Сообщения: 630
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

arra писал(а):не могу найти, в каком модуле находится TPNGImage

В модуле Graphics под псевдонимом TPortableNetworkGraphic. :wink:
Ответить