AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Transparenz ist nicht gut genug
Thema durchsuchen
Ansicht
Themen-Optionen

Transparenz ist nicht gut genug

Ein Thema von torud · begonnen am 22. Nov 2005 · letzter Beitrag vom 23. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Transparenz ist nicht gut genug

  Alt 22. Nov 2005, 19:05
Hallo Wissende!

Ich habe ein Bild auf meinem Formular platziert und lege nun ein TImage darüber. In diesem TImage lade ich ein Bitmap, welches ich in 24 Bit-Qualität abgespeichert habe, weil ich es mit transparenz benötige. Es ist bei 100% geradeso akzeptabel, aber sobal ich die Grösse minimiere wird es grottenschlecht.

Was kann ich tun. Ich habe mir die Grafix32 gezogen und installiert, aber dort scheinen nur Bitmaps zu gehen und man muss noch einen Extra-Aplha-Channel angeben. Warum loben das alle über den Klee, wenn da nicht mal png zu laden geht?

Wie kann ich das mit den Transparenzen lösen???
Oder kann ich etwas anderes mit Bitmap32 probieren?
Gibt es etwas ähnliches wie TImage, wo ich Bilder hineinladen kann, die dann aber eine Transparenz haben?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Transparenz ist nicht gut genug

  Alt 22. Nov 2005, 20:55
Zitat von torud:
In diesem TImage lade ich ein Bitmap, welches ich in 24 Bit-Qualität abgespeichert habe, weil ich es mit transparenz benötige.
24-Bit hat keinen Alpha-Kanal, du meinst wohl 32-Bit.
Zitat:
Was kann ich tun. Ich habe mir die Grafix32 gezogen und installiert, aber dort scheinen nur Bitmaps zu gehen und man muss noch einen Extra-Aplha-Channel angeben. Warum loben das alle über den Klee, [...]
Weil sie in die offizielle FAQ geschaut haben.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 06:50
Nein eigentlich bin ich mir sicher, dass Photoshop mich danach fragt, ob ich das BMP als 24-Bit-Datei abspeichern will und dass mir selbst IrfanView diese Datei als 24-Bit-Datei ausgibt. Mir bekannt ist, dass TGA-Dateien einen Alpha besitzen, wenn man sie als 32-Bit-Dateien abspeichert.

Ich habe mal die neuere Version gezogen, da ich noch die 1.5.1 hatte und mir die FAQ angesehen. Meine Frage ist nun.

In welches Control laden die in dem Beispiel die PnG-Datei? In ein TImage oder in ein TImage32?

Ich habe nämlich gestern abend hier im Forum gelesen, dass TImage32 gar nicht dafür gemacht sein soll mit transparenz durchsichtig über anderen Control liegen zu können. Hat sich das geändert oder habe ich es mal wieder falsch verstanden?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 07:00
Zitat von torud:
Ich habe mal die neuere Version gezogen, da ich noch die 1.5.1 hatte und mir die FAQ angesehen. Meine Frage ist nun.
In welches Control laden die in dem Beispiel die PnG-Datei? In ein TImage oder in ein TImage32?
Hast Du den Beitrag oben gelesen?

Zitat von Khabarakh:
Weil sie in die offizielle FAQ geschaut haben.
Ich weiß nicht wie gut Du Dich mit dem Internet auskennst, aber wenn so ein Wort unterstrichen ist, ist das ein Link. Wenn man auf einen Link klickt gelangt man zur gewünschten Information. (Sogar mit Quelltext Beispiel)

Hinter dem Link verbirgt sich folgender Text:
Is there a PNG library for GR32 which supports loading the image and its alpha channel at the same time?
...
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 07:26
Ja natürlich weiss ich, dass das ein Link war. Ich bin im gefolgtm und habe mir das dort durchgelesen. Du fragst dies sicher, wegen meiner Frage mit TImage und TImage32!? Dies bezieht sich im Primzip darauf, was ich schrieb in Bezug auf die Transparenzfähigkeit der TImage32.

Ich habe selbst den Code probiert, aber der Compiler meckert, weil er natürlich das

uses PNGImage; nicht hat oder kennt.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 07:42
Zitat von torud:
Ja natürlich weiss ich, dass das ein Link war. Ich bin im gefolgtm und habe mir das dort durchgelesen. Du fragst dies sicher, wegen meiner Frage mit TImage und TImage32!? Dies bezieht sich im Primzip darauf, was ich schrieb in Bezug auf die Transparenzfähigkeit der TImage32.

Ich habe selbst den Code probiert, aber der Compiler meckert, weil er natürlich das

uses PNGImage; nicht hat oder kennt.
Ich persönlich verwende auch: http://pngdelphi.sourceforge.net/

Das ist ein Filter, der auch das normale TImage von Delphi dazu bringt PNG anzuzeigen.
Da das auch in der FAQ erwähnt ist, gehe ich davon aus, das der Quellcode (Beispiel) pngdelphi verwendet.

Hier kannst Du auch nochmal nach PNG alternativen schauen: http://delphi.pjh2.de/articles/graphic/png.php
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 08:37
Also das hier wollte ich unbedingt lesen:

Zitat:
Das ist ein Filter, der auch das normale TImage von Delphi dazu bringt PNG anzuzeigen.
Da das auch in der FAQ erwähnt ist, gehe ich davon aus, das der Quellcode (Beispiel) pngdelphi verwendet.
Ich habe mir nun die PNG-Komponente gezogen, aber noch nicht die Möglichkeit gefunden, wie man nun mit der TImage, ein Png samt Alpha laden und anzeigen kann. Ich wühle mal noch etwas in der Hilfe zur Komponente, würde mich aber auch noch über einen kurzen Wink freuen.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 08:45
Zitat von torud:
Also das hier wollte ich unbedingt lesen:
Zitat:
Das ist ein Filter, der auch das normale TImage von Delphi dazu bringt PNG anzuzeigen.
Da das auch in der FAQ erwähnt ist, gehe ich davon aus, das der Quellcode (Beispiel) pngdelphi verwendet.
Ich habe mir nun die PNG-Komponente gezogen, aber noch nicht die Möglichkeit gefunden, wie man nun mit der TImage, ein Png samt Alpha laden und anzeigen kann. Ich wühle mal noch etwas in der Hilfe zur Komponente, würde mich aber auch noch über einen kurzen Wink freuen.

TPNGImage ist keine Komponente, sondern "nur" ein Filter.
Wenn Du das Package installiert, wird in initialization folgendes ausgeführt:
Delphi-Quellcode:
...
    TPicture.RegisterFileFormat('PNG', 'Portable Network Graphics', TPNGObject);
...
Lege einfach ein TImage auf ein leeres Form und klicke mal im Objektinspektor auf die Eigenschaft Picture. Im Dialog kannst du nun auch *.png Dateien auswählen und öffnen.
so einfach ist das.

Alle Komponenten, die TPicture verwenden sind nun PNG fähig.

In Deiner Unit wird in der uses dan automatisch pngimage hinzugefügt.

Schau Dir auch die Beispiel Programme auf der Homepage am.

[edit]nun sollte auch das Beispiel in der FAQ von der anderen Image Komponente funktionieren[/edit]
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#9

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 08:46
Also ich weiss nun nicht, ob das der richtige Weg ist, aber ich habe es testhalber mal so gemacht:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Bitmap: TBitmap;
  PNG: TPNGObject;
begin
  PNG := TPNGObject.Create;
  Bitmap := TBitmap.Create;
  {In case something goes wrong, free booth PNG and Bitmap}
  try
    PNG.LoadFromFile('c:\test.png');
    Bitmap.Assign(PNG); //Convert data into bitmap
    Image1.Picture.Bitmap:=Bitmap;
    //Bitmap.SaveToFile(Dest);
  finally
    PNG.Free;
    Bitmap.Free;
  end
end;
Bitt um Protest, wenn das was schwerwiegendes Falsch ist. Die TImage habe ich auf transparent gestellt und hoffe nun, dass es in den folgenden Test zu besserer Qualität kommt.
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Transparenz ist nicht gut genug

  Alt 23. Nov 2005, 08:49
Du warst schneller. Ich kann mir also den Umweg über das Assign sparen. Vielen Dank für Deine Infos und Deine Geduld!
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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