Autor Beitrag
stiftmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Fr 17.03.06 09:54 
Hallo Leute,

ich verwende Photo-Shop zum Erstellen von PNG-Dateien. Wenn ich diese Dateien im InternetExplorer darstellen will, sind diese immer etwas dunkler als gewünscht. Erst dachte ich, es wäre ein IE-Bug, doch dann habe ich den Tipp bekommen, dass man die PNG-Datei durch Gimp jagen soll (einmal öffnen, dann wieder speichern). Und tatsächlich - die Grafik wird nun korrekt im IE angezeigt (in allen anderen Browsern auch).

Habe jetzt rund 10 Grafiken schon durch Gimp gejagt und langsam nervt es. Will mir jetzt ein Programm schreiben, was mir die gesamte Arbeit abnimmt (ohne Gimp als eigenständiges Programm). Habe geschaut, welche Möglichkeiten es gibt, in Delphi PNG-Dateien zu laden. Bin hier auf TPNGImage gestoßen und damit kann ich auch wunderbar PNG-Dateie laden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  Picture: TPNGObject;
begin
  Picture := TPNGObject.Create;
  Picture.LoadFromFile('D:\Test.png');
  Picture.LoadFromFile('D:\Test.bmp');
  Picture.SaveToFile('D:\Test2.png');
  Picture.Free;
end;


Binde ich die neue Datei wieder in die Seite ein, besteht der Fehler weiterhin. Hat jemand n' Ahnung oder n' Idee, was ich noch machen muss, damit auch dieser dumme IE die PNG-Dateie richtig darstellt. Bin für jeden Tipp dankbar.

Stefan
fidionael
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 232

Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
BeitragVerfasst: Fr 17.03.06 10:13 
Hallo,

ich bin mir ehrlich gesagt gar nicht so sicher, ob ich deinen Quelltext verstehe...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var Picture: TPNGObject;
begin
  Picture := TPNGObject.Create;

  Picture.LoadFromFile('D:\Test.png');
  Picture.LoadFromFile('D:\Test.bmp');

  Picture.SaveToFile('D:\Test2.png');
  Picture.Free;
end;


An der markierten Stelle wird einfach direkt hintereinander eine png- und eine bmp-Datei geöffnet? Dir ist klar, dass dadurch das erste Öffnen (test.png) seine Wirkung verliert? Ansonsten bin ich mir auch nicht sicher was Gimp mit einer png-Datei alles anstellt beim Öffnen :)

Mfg
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Fr 17.03.06 10:20 
Hallo,

die eine Zeile war noch aus n'm Test - natürlich ist die überflüssig gewesen. Hatte versucht, die PNG-Datei zu laden, dann als BMP zu speichern, dann die BMP-Datei zu laden und als PNG-Datei zu speichern :-) Hat auch net geklappt... aus diesem Versuch stammte die Zeile... Hier die überarbeitete Version:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var Picture: TPNGObject;  
begin  
  Picture := TPNGObject.Create;  
  Picture.LoadFromFile('D:\Test.png');  
  Picture.SaveToFile('D:\Test2.png');  
  Picture.Free;  
end;


Bis dann

Stefan
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Fr 17.03.06 17:30 
Hallo,

hab mal ein bissle weiter im Web gesucht und folgendes gefunden:
Zitat:
Dem einen oder anderen wird sicherlich schon mal das kleine Problemchen untergekommen sein, daß Photoshop – in meinem Fall Version 7 – einen eher skurrilen Gammawert für PNG/24Bit mit Alphakanal auswählt, wenn man Bild mit ‘Für Web speichern’ exportiert.


Leider weiß ich nicht, wie ich den Gammawert über TPNGImage auslesen kann, geschweige denn überschreiben und wenn mit welchem Wert :-) Vielleicht hilft die Info ja jemandem weiter *hoff*

Stefan

EDIT:

Habe soeben mal zwei Grafiken angehängt. Photoshop.png ist die original in PS erstellte Datei und die Gimp.png ist die, nachdem ich die Datei durch Gimp gejagt habe. Habe beide Dateien in Delphi geladen, kann aber keinen Unterschied feststellen :-(
Einloggen, um Attachments anzusehen!
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 29.03.06 17:49 
Im Internet Explorer sehe ich aber auch keinen Unterschied (zumindest bei meiner Monitoreinstellung). Und wenn es ein Photoshop-Problem ist, dann kannst du nicht den Internet Explorer beschuldigen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Mi 29.03.06 17:55 
Hi,

du musst die Grafiken nebeneinander anschauen - dann siehst du ganz klar n' Unterschied. Bau dir am besten n' kleine HTML-Datei, wo beide included werden :-)

Ob es ein IE-Bug ist oder ein Photoshop-Bug kann ich nicht sagen. Sagen wir, es ist ein Kompabilitäts-Problem. Ich weiß nicht, wer da falsch mit dem PNG-Format umgeht. Ich vermute einfach, dass es der IE ist - immerhin kann er auch nicht mit transparenten PNGs umgehen :-)

Ansonsten hab ich leider immer noch keinen Plan, wie ich das Problem in den Griff bekomme :-)

Bis dann

Stefan
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 29.03.06 18:12 
OK stimmt, aber nur kleines bisschen ^^.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Mi 29.03.06 18:16 
jo - genau das ist aber das Problem - wenn man n' Hintergrund in der Farbe hat und darüber Grafiken legt, dann sieht das ganz schön mies aus :-) Und das kommt auf den Seiten, die wir machen, net nur einmal vor :-)

Bis dann

Stefan
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Fr 31.03.06 13:11 
Hi stiftmaster

Der Alphawert des PNG entspricht einem 8-bit-BMP mit der selben Größe des des reine Color-BMPs. Zugreifen kannst du über PNGImage.AlphaScanline. AlphaScanline steht nur zurverfügung, wenn des PNG einen Alphakanal besitzt (erzeugen des Alphachannels CreateAlpha; entfernen RemoveTransparency). Die möglichen AlphaWerte liegen bei 0..255 (deckend..transparent).
Wenn du bei den PNG's den Alphachannel nicht brauchst kill ihn, denn er braucht nur Platz.

MfG Simon
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Fr 31.03.06 16:32 
Hi,

vielen Dank für den Hinweis. Ich habe jetzt mal folgendes programmiert:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
var
  Picture: TPNGObject;
begin
  Picture := TPNGObject.Create;

  Picture.LoadFromFile('D:\Test1.png');
  Picture.RemoveTransparency;
  Picture.SaveToFile('D:\Test1-1.png');

  Picture.Free;


Leider besteht der Fehler immer noch und die Datei ist auch noch genauso groß wie vorher. Mache ich irgendetwas falsch?

Dankend

Stefan