Delphi 7, загрузить PNG в TImage - PullRequest
4 голосов
/ 04 июня 2011

Просто хочу загрузить .PNG, попробовал с моим LoadPic (), используя OleGraphic, который работает с другими форматами, но это не удалось на PNG.

Цель состоит в том, чтобы скопировать изображение в скрытое растровое изображение, откуда оно затем маскируется и копируется на видимый рабочий холст изображения. Не стесняйтесь предлагать что-то еще, если CopyRect не делает этого.

Но главный вопрос: загрузить PNG. Как? Я нашел много страниц (например, TPNGImage), но все ресурсы и ссылки в Интернете устарели, ушли или не могут быть загружены.

Ответы [ 6 ]

11 голосов
/ 04 июня 2011

Delphi 7 изначально не поддерживает PNG.Есть несколько сторонних компонентов, которые позволят вам добавить эту поддержку.Например, на сайте Torry .

6 голосов
/ 04 июня 2011

Последние версии Delphi изначально поддерживают PNG, среди многих других улучшений, и вам будет рекомендовано обновить.

5 голосов
/ 13 июня 2011

Я буду использовать GraphicEx из Soft Gems сейчас. Спасибо за полезные ответы!

3 голосов
/ 04 июня 2011

Скачать снизу ...

http://delphi.pjh2.de/articles/graphic/png.php

Очень просто обрабатывать изображения .png с помощью delphi 7 ... Просто добавьте его в использование ...и создать объект png ...

0 голосов
/ 14 октября 2016

GraphicEx от Soft Gems был перемещен в https://github.com/mike-lischke/GraphicEx

Объяснение относительно перемещения можно найти по адресу http://www.soft -gems.net / index.php / libs / 43-graphicex-on-github

Я добавил GraphicEx в свой проект Delphi 6, и он работал "из коробки", но когда я тестировал его с Delphi 5, он не сделал.и реализует не только PNG-изображения, но и многие другие, которые можно настраивать в GraphicConfiguration.inc:

// Pick your preferred image formats here or leave them all enabled. By disabling
// certain formats which are not of interest you can save some memory.
{$define UseLZW}  //patent is out, yay!
{$define SGIGraphic}             // *.bw, *.rgb, *.rgba, *.sgi images are supported
{$define AutodeskGraphic}        // *.cel, *.pic images
{-$define NewTIFFGraphic}            // *.tif, *.tiff images
{$define OldTIFFGraphic}
{$define TargaGraphic}           // *.tga, *.vst, *.icb, *.vda, *.win images
{$define PCXGraphic}             // *.pcx, *.pcc, *.scr images
{$define PCDGraphic}             // *.pcd images
{$define PortableMapGraphic}     // *.ppm, *.pgm, *.pbm images
{$define CUTGraphic}             // *.cut (+ *.pal) images
{$define GIFGraphic}             // *.gif images
{$define RLAGraphic}             // *.rla, *.rpf images
{$define PhotoshopGraphic}       // *.psd, *.pdd images
{$define PaintshopProGraphic}    // *.psp images
{$define PortableNetworkGraphic} // *.png images
{$define EPSGraphic}             // *.eps images
{$define ArtsAndLettersGraphic}  // *.ged images
0 голосов
/ 04 июня 2011

Небольшая библиотека с открытым исходным кодом SynGdiPlus способна загружать и сохранять изображения в формате gif, tiff и png .

Это вызовет библиотеку GdiPlus.dll, которая доступна с Windows XP.

Это быстро и надежно.

Этот же модуль может отображать любой метафайл GDI с сглаживанием: вы пишете на обычном TCanvas, а затем рисуется с сглаживанием с использованием GDI +. Небольшое изменение кода, улучшенный рендеринг.

Модуль с открытым исходным кодом, работающий от Delphi 6 до XE.

Вы можете скачать последнюю версию с http://synopse.info/fossil/finfo?name=SynGdiPlus.pas

...