Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Transparenz bei best. Farbe (https://www.delphipraxis.net/96714-transparenz-bei-best-farbe.html)

freak4fun 29. Jul 2007 22:19


Transparenz bei best. Farbe
 
Wie bekomme ich die Gebäude von reinerstileset.4players.de in einen Image transparent?

MfG
freak

dajuhsa 29. Jul 2007 22:30

Re: Transparenz bei best. Farbe
 
transparent := true?

freak4fun 29. Jul 2007 22:35

Re: Transparenz bei best. Farbe
 
Die Hintergrundfarbe ist keine clXXX Farbe, daher geht das nicht. Hast du deine Antwort mal ausprobiert?

EDatabaseError 29. Jul 2007 22:56

Re: Transparenz bei best. Farbe
 
Man kann jede beliebige Farbe als TransparentColor einstellen. Nicht nur die clXXX.

Transparent Color = Hintergrundfarbe
Transparent = true

IMHO... :|

dajuhsa 29. Jul 2007 22:57

Re: Transparenz bei best. Farbe
 
normal wird automatisch die farbe transparent die ganz unten rechts ist, und wenn man diese farbe manuell rauslöscht sieht das bestimmt so aus wie du dir das vorstellst, wenn nicht: die farbe sollte $00808080 sein

EDatabaseError 29. Jul 2007 23:04

Re: Transparenz bei best. Farbe
 
Schau mal unter den Propertys des Forms. Da gibts TransparentColor. Das ist dann die Farbe die transparent ist.

Hab das Bild aber gerade mal eingebunden und musste feststellen das es kein durchgehendes Grau ist sondern hier und da die Farbe im Hintergrund ein bisschen anders ist.

Daher würde ich dir empfehlen das Bild mit z.b. gimp so zu bearbeiten das der Hinterfrund in clFuchsia ist. Oder als transparentes PNG.

freak4fun 29. Jul 2007 23:07

Re: Transparenz bei best. Farbe
 
Danke,
hab mal wieder zu kompliziert gedacht und wollte die Farben konvertieren und sonst was, dabei hab ich ja die Farbe vor meiner Nase.

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var
  lColor: TColor;
begin
  Image1.Picture.Bitmap.Transparent := True;

  TransparentColor := True;
  with Image1 do
    begin
      Left := 0;
      Top := 0;
      Width := 288;
      Height := 288;

      with Picture.Bitmap do
        begin
          LoadFromFile('stable.BMP');
          TransparentColor := Canvas.Pixels[1, 1];
        end;

    end;
end;
MfG
freak

Glocke89 29. Jul 2007 23:15

Re: Transparenz bei best. Farbe
 
Zitat:

Zitat von freak4fun
Danke,
hab mal wieder zu kompliziert gedacht und wollte die Farben konvertieren und sonst was, dabei hab ich ja die Farbe vor meiner Nase.

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var
  lColor: TColor;
begin
  Image1.Picture.Bitmap.Transparent := True;

  TransparentColor := True;
  with Image1 do
    begin
      Left := 0;
      Top := 0;
      Width := 288;
      Height := 288;

      with Picture.Bitmap do
        begin
          LoadFromFile('stable.BMP');
          TransparentColor := Canvas.Pixels[1, 1];
        end;

    end;
end;
MfG
freak

Das Thema hatten wir ja vorhins per ICQ ;)

Das was oben mit Gimp empfohlen wurde, geht auch prima mit Paint
:bouncing4:
:bounce2:
:bounce1:

Mal ne blöde Frage: wo ist da im Script die transparente Farbe angegeben? Hab ich etwas überlesen oder so?

EDatabaseError 29. Jul 2007 23:21

Re: Transparenz bei best. Farbe
 
TransparentColor := Canvas.Pixels[1, 1];

hier sagt er das die TransparentColor die Farbe im Bild auf Punkt 1,1 sein soll.

freak4fun 30. Jul 2007 01:20

Re: Transparenz bei best. Farbe
 
Jep, funktioniert nun wieder aber nicht mit dem Andorra 2D Ding. :( Weil ich da ans Pixel nicht rankomme. *aufreg* Aber irgendwas ist ja immer. ^^

MfG und gute Nacht!
freak

xZise 22. Aug 2007 10:53

Re: Transparenz bei best. Farbe
 
Der Thread ist zwar schon etwas älter.
Aber Andorra 2D bietet dir die Möglichkeit PNG Grafiken zu laden (mit GIF bin ich mir nicht sicher, aber ich würde dennoch PNG nehmen).
Also GIMP downloaden, installieren, Dateien laden, Farbe markierentoll nehmen und den Pixel anklicken (er sollte dann alles graue markieren), <Strg>+[I] drücken (um die Selektion zu invertieren), Ausschneiden, Einfügen, Im Ebeneneditor die schwebende Auswahl als neue Ebene einfügen, Hintergrund entfernen: Tada ^^ Man hat alles darum transparent.
Und dann nur noch als .png abspeichern und fast fertig.
Nachher musst du eben nur im Code die Unit "AdPNG" hinzuüfgen. Die Unit benötigt aber pngimage.

Andere Möglichkeit, wenn du Grafiksammlungen verwendest:
Du kannst ein Transparenz Layer einstellen.
Doppelt auf Bild klicken und den Layer setzen. Sollte selbsterklärend sein.
Speichern => Tada :) Transparenz.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.

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