ďťż

Ładny brzuch

Witam. Mam następujący problem. Otóż mam 2 komponenty TImage. Niech będzie, że nazywają się a i b. Chcę skopiować obszar (TRect) z Canvasa obrazka a do Canvasa obrazka b. I tutaj zaczyna się problem, bo CopyRect kopiuje wewnątrz Canvasa, a ja potrzebuję przenieść ten obszar pomiędzy dwoma canvasami. Wie ktoś jak można to zrobić?



Skopiuj ten obszar do schowka (coś na wzór tego), albo stwórz jeszcze jedną, tymczasową bitmapę na czas kopiowania i na niej operuj? :)
Użytkownik bl4ckh4t edytował ten post 09 październik 2008, 15:30
Dziękuję za chęci, ale ja podanego kodu nie rozumiem - za słabo skomentowany jak dla mnie. A jeśli nie rozumiem, to nie mogę go odpowiednio przekształcić. Popytam się jeszcze na 4programmers, bo mi na tym zależy.

Z kopiowaniem (chyba) sobie poradziłem. Chyba, bo nie da się do TImage załadować PNG (unknown file format (PNG)). Jakieś pomysły jak to zrobić (moja aplikacja MUSI korzystać z PNG)?

co do PNG:
http://www.torry.net...ts/pngimage.zip

Mój kawałek kodu (nie pamiętam tylko czy odnosi się do tego komponentu, jak nie będzie z nim działał- pisz)
function PNGToBmp(Filename: String):TBitmap; {png to bitmap} var PNG: TPNGObject; begin PNG := TPNGObject.Create; Result := TBitmap.Create; try PNG.LoadFromFile(Filename); Result.Assign(PNG); finally PNG.Free; end; end; function BmpToPNG(Bitmap:TBitmap):TPNGObject; {conver bitmap to PNG} begin Result:=TPNGObject.Create; try Result.Assign(Bitmap); finally end; end;

...

a co do kopiowania fragmentu bitmapy z jednego Image do drugiego..

begin Image2.Canvas.CopyRect( Rect(0,0,100,100), //Pozycja docelowa na Image2 Image1.Canvas, Rect( //Rect kopiowanego fragmentu z Image1 0, 0, 50, 50)); end;
Użytkownik bl4ckh4t edytował ten post 09 październik 2008, 21:24


Dziękuję, pomogło. Teraz mam inny problem.
http://img403.images.../tonietoeg2.png
Chodzi o to, żeby kolor w kółku (i w ogóle całe tło) zamienić np. na clAqua (w pliku PNG jest tam przezroczystość, więc w gruncie rzeczy chodzi o zmianę kanału Alpha na jakiś kolor). Do ładowania pliku do TImage używam kodu:
epng:= TPNGObject.Create; epng.LoadFromFile(load.FileName); epng.AssignTo(Image1.Picture.Bitmap); epng.Free;
Użytkownik Rave edytował ten post 10 październik 2008, 10:37
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •