Delphi a PNG

0

Witam mam następujący problem - czy i jak da się obsłużyć pliki PNG w Delphi. Chodzi mi o wczytywanie do TImage. Z góry dziękuję - korzystam z Delphi 7 Enterprise.

0

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

http://www.torry.net/authorsmore.php?id=6929

do uses Dodajesz PngImage ;

tworzysz zmienną i robisz z nią co chcesz np :

var 
FPng:TPngObject;

//potem gdzies w kodzie
FPng:=TPngObject.create;
FPng.Assign(Bitmap) ;  // i np robisz PNG z BMP np albo na odwrót albo ladujesz z/ do pliku 
FPng.SaveToFile(FileName) ;
FPng.Free;
0

Dziękuję :-) :-D :d [green]

Mam teraz inny problem - jak zrobić, żeby po przypisaniu do bitmapy przezroczystość została zastąpiona przez określony kolor (na przykład ja chcę clAqua). Aha i na przypisanie do bitmapy używam tego kodu:
[code]
epng:= TPNGObject.Create;
epng
epng.LoadFromFile(load.FileName);
epng.AssignTo(Image1.Picture.Bitmap);
epng.Free;
[/code]

Po przypisaniu tło (przezroczystość, Alpha, czy jak to chcesz nazwać) jest biała, ale ja chcę, żeby była na przykład clAqua. Co mam zrobić? Z góry dziękuję.

0
Image1.Picture.Bitmap.TransparentColor:=ClAqua;
Image1.Picture.Bitmap.Transparent:=True;

0

Dziękuję, ale to chyba nie to. To może zarzucę obrazkiem:
user image

Chcę, aby w miejscu oznaczonym kółkiem było clAqua (w pliku PNG jest tam przezroczystość)
//EDIT: A tu powinni wprowadzić BBCode, a nie jakiś pseudo HTML</image>

0

Poszukaj w własnościach TPNGObject

0

Szukałem, ale niestety nie działa. Zresztą nigdy się nie pytam zanim nie użyję wszystkich możliwych konstrukcji.
//EDIT: Przydałby się link do dokumentacji tego modułu.

0

Hmm, może działa a nie tak jak myślisz. Pokaż kod. Jak to wygląda.

Może trzeba użyć innej metody niż Assign. Co jeśli chcemy namalować PNG'a na jakimś innym obrazku ? Musi być do tego jakaś metoda. A wtedy po prostu przed malowaniem wypełniasz podłoże kolorem clAqua.

0

adf88, dziękuję za naprowadzenie na rozwiązanie.
[!!!] [green] ;-P :-D :-) [soczek] [browar] :d ;-) [!!!]

TEMAT DO ZAMKNIECIA

1 użytkowników online, w tym zalogowanych: 0, gości: 1