Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi PNGImage, lineto/Move mit Alpha? (https://www.delphipraxis.net/159444-pngimage-lineto-move-mit-alpha.html)

Memnarch 28. Mär 2011 16:20

PNGImage, lineto/Move mit Alpha?
 
Nabend,
Ne kleine Frage. Hab gerade nen PNGimage auf das der User zeichnen kann. Wenn ich normal zeichne mit Lineto etc habe ich keinen einfluss auf den Alpha kanal.
Immoment ist geplant im hintergrund nen zweites bild zu erstellen, dass den alphakanal in Graustufen enthält, sodass ich mit dem stift einmal auf Colorebene zeichne und einmal mit entsprechendem grauwert auf die Greyscale alpha map. Das veränderte rechteck wird dann in den alphakanal der Originalen TPNGImage gepackt.

Hab auch schon versucht eigene zeichen funktionen zu schreiben, aber irgendwie sind die nicht so das ware.
Jemand ne idee?

MFG
Memnarch

turboPASCAL 28. Mär 2011 17:30

AW: PNGImage, lineto/Move mit Alpha?
 
Kleine Gegenfrage, warum nutzt du nicht die GR32-Lib ?

Png-Image in ein TBitmap32 kopieren und munter mit Alphakanal und Co darauf herum malen...

Memnarch 28. Mär 2011 17:37

AW: PNGImage, lineto/Move mit Alpha?
 
ach Gr32Lib besitzt diese malfähigkeit?
Dan isse sklar wohin ich wechsel :D

MFG
Memnarch

turboPASCAL 28. Mär 2011 18:10

AW: PNGImage, lineto/Move mit Alpha?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Jo, die kann sowas.

// Edit:
Delphi-Quellcode:
function SaveBitmap32ToPNGFile(FileName: string; srcbmp32: TBitmap32): bool;
begin
  Result := False;
  // todo:
  // Guckst du zu...
  // http://graphics32.org/news/newsgroups.php?art_group=graphics32.general&article_id=6918
end;
// Edit2:
Kleine Änderung am Beispiel

Memnarch 28. Mär 2011 18:39

AW: PNGImage, lineto/Move mit Alpha?
 
okay, demo angeguckt. Dort hast du mit einem Alphaeffect über das bild gemalt. Ist es auch möglich beim malen den alphachannel zu modifizieren?

Die farben sollen ja ganz normal aufgetragen werden, nur der alphachannel muss dabei verändert werden.

MFG
Memnarch

turboPASCAL 28. Mär 2011 19:24

AW: PNGImage, lineto/Move mit Alpha?
 
Der Alphachannel wird mit modifiziert. ;)

Memnarch 28. Mär 2011 20:05

AW: PNGImage, lineto/Move mit Alpha?
 
A gut, okay^^.

Das bild mus halt am ende semitransparente stellen haben(wen abgespeichert als file). Aber das scheint ja kein problem zu sein^^


MFG
Memnarch

Memnarch 29. Mär 2011 16:17

AW: PNGImage, lineto/Move mit Alpha?
 
Ah sehr schön. Habe es mir gerade angeguckt und wirklich sehr schöne Bibliothek, möcht ich scho nach dem austesten nich mehr missen :D.

Kleine frage noch, ist es möglich auch nur den Alphakanal zu manipulieren? Sodas ich wenn ich z.b eine Linie zeichne nicht die farben sondenr nur den Alphawert manipuliere.

MFG
Memnarch

Memnarch 3. Apr 2011 14:28

AW: PNGImage, lineto/Move mit Alpha?
 
Tschuldigt bitte wnen ich nochmal pushe, aber ich konnte zu der frage absolut nichts finden:

Kann ich eine linie zeichnen, bei der ich NUR den Alphakanal, nicht aber die Farben beeinflusse?

EDIT: ist halt nochimmer bei mir so gelößt, das ich zum reinen alpha manipulieren eine zweite bitmap im hintergrund hab auf der ich zeichne und die farbwert als alphawerte in doe vordergrundbitmap kopieren.

MFG
Memnarch

Bummi 3. Apr 2011 14:53

AW: PNGImage, lineto/Move mit Alpha?
 
nur als Anregung ....

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  p:PByteArray;
  x,y:Integer;
  pI:TPngImage;
begin
  pi := TPngImage.Create;
  pi.LoadFromFile('C:\Bilder\IconCollection\ix_ap_all\128x128\shadow\about.png');
  for y := 0 to 100 do
    begin
      p := pi.AlphaScanline[y];
      for x := 0 to 100 do

      p^[x]:= Round(255 * (x * y) / 10000);

    end;
  image1.Picture.Assign(pi);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz