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.
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;
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ę.
Image1.Picture.Bitmap.TransparentColor:=ClAqua;
Image1.Picture.Bitmap.Transparent:=True;
Dziękuję, ale to chyba nie to. To może zarzucę obrazkiem:
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>
Poszukaj w własnościach TPNGObject
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.
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.
adf88, dziękuję za naprowadzenie na rozwiązanie.
[!!!] [green] ;-P :-D :-) [soczek] [browar] :d ;-) [!!!]
TEMAT DO ZAMKNIECIA