Autor Beitrag
Affje
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Fr 22.08.03 20:49 
hi

ich bin gerade dabei, ein kleines spiel zu programmieren, jedoch habe ich ein problem. ich will in meine image komponente ein png bild einlesen, da ich ein format nehmen muss, dass transparenz unterstüzt. gibts da eine möglichkeit????
worm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 135


D6 Prof
BeitragVerfasst: Fr 22.08.03 23:10 
Ein bisschen Google: pngdelphi.sourceforge.net/
Falls du keinen echten Alpha-Kanal benötigst, sondern nur einfache Transparenz wie bei GIFs, geht's auch mit 'ner Bitmap.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var b: TBitmap;
begin
  b := TBitmap.Create;
  try
    with b do
    begin
      LoadFromFile('xyz.bmp');
      //Optional, falls nicht die Farbe links unten transparent werden soll
      {TransparentMode := tmFixed;
      TransparentColor := clFuchsia;}

      Transparent := True;
    end;
    Canvas.Draw(10,10,b);
  finally
    b.Free;
  end;
end;

_________________
In the beginning, the universe was created. This has made a lot of people very angry, and is generally considered to have been a bad move.
Affje Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 25.08.03 22:16 
was ist ein alpha-kanal??
worm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 135


D6 Prof
BeitragVerfasst: Di 26.08.03 22:05 
Ein Alpha-Kanal ist ein Kanal (neben Rot, Grün, Blau), der die Transparenz angibt. Er wird meistens in Graustufen dargestellt, dabei wäre weiß = völlig undurchsichtig und schwarz = völlig transparent. Die Grauwerte sind dann die Zwischenstufen, also halbtransparent. Der Alpha-Kanal eignet sich somit, um auch z.B. Schatten oder "antialiaste" Ränder abzuspeichern.
Bei Gifs ist der Alphakanal nur monochrom (also nur schwarz und weiß, kein Grau).

_________________
In the beginning, the universe was created. This has made a lot of people very angry, and is generally considered to have been a bad move.
Affje Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Di 26.08.03 22:43 
kann mir jemand mal ein beispiel geben, wie ich ein png bild lade, wenn ich auf einen button drücke??
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 27.08.03 17:31 
Hi!

Also meines Wissens wird PNG nicht so ohne weiteres von TImage unterstützt. Du müsstest also mal schauen, ob du nicht eine Unit oder Komponente für dieses Format findest.

BTW: Ein Alpha-Kanal stellt nicht unbedingt Transparenz dar. Es ist einfach ein weiterer Kanal, der alles mögliche bedeuten kann; z.B. kann dies eine Heightmap für Bumpmapping-Effekte darstellen. Bei Gifs wird die Transparenz einfach durch eine Farbe definiert, die dann als "unsichtbar" bzw."durchsichtig" gilt. Alle Pixel mit dieser Farbe werden dann nicht gezeichnet. Ein richtiger Alpha-Kanal ist dafür nicht nötig.

Cu, :)
Udontknow
worm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 135


D6 Prof
BeitragVerfasst: Do 28.08.03 18:34 
@Udontknow: Zum Thema "PNG mit TImage" siehe meinen allerersten Post in diesem Thread.
Mit den Alpha-Kanälen hast Du recht - das mit dem Monochromen Alpha-Kanal hab ich nur als Vergleich zu den "genaueren" Alpha-Kanälen gesagt. Umgesetzt ist es so, wie Du's gesagt hast. :)

_________________
In the beginning, the universe was created. This has made a lot of people very angry, and is generally considered to have been a bad move.