-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
29. Apr 2020
Nein:
BitDepth := PNG.Header.BitDepth;
if BitDepth = 2 then BitDepth := 4;Oder hast du Probleme mit simple3.png, dem gelb-pinken Bild aus meinem Anhang? Dein Code würde auch da das Verhalten ändern, denn das hat 1BPP.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
28. Apr 2020
Klappt bei mir in Delphi 2009 ohne Probleme mit meiner Methode. Bitdepth ist zwar 4, was scheinbar falsch ist, die Daten liegen aber auch so im Speicher, als ob es 4 wäre (bei mir und bei dir!).
Was ist Bitdepth bei dir? Falls 2, was passiert, wenn du BitDepth (also die Variable in meiner Methode) direkt nach dem Setzen auf 4 setzt?
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
27. Apr 2020
Bei mir sind da Bilder. Was für einen Browser benutzt du? Ich habe Firefox 75.
Hab es dir aber nochmal aus 7z angehängt.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
27. Apr 2020
ptmBit ist deutlich einfacher (performanter) zu zeichnen als ptmPartial, wo man Alpha Blending (Porter-Duff OVER) durchführen muss.
Unterstützt dein PNGDelphi ohne meinen Algorithmus 4-Bit+Alpha und 1-Bit+Alpha? Ich hab mal zwei Beispiele angehängt.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
26. Apr 2020
Hab mir das nochmal angesehen:
Paletten-PNG an sich kennt überhaupt keine 1-Bit-Transparenz. Dies ist nur ein Spezialfall von Palette+Alphakanal, wo alle Alphawerte entweder 0 oder 255 sind. TPngImage behandelt den Spezialfall anders (ptmBit) als Palette+Alphakanal (ptmPartial), obwohl es dafür keinen wirklichen Grund gibt. Man könnte jetzt versuchen, das Attribut TransparentColor zu...
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
26. Apr 2020
So große Töne spucken, wenn man noch nicht mal weiß, was TPNGImage ist... :wall:
Du suchst eine Herausforderung? Alles klar, dann erstell doch einfach mal ein Computerprogramm, das irgendein Problem aus dieser Liste in polynomieller Zeit löst.
Das ist dennoch ein richtiger Ansatz.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
25. Apr 2020
Nein.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
23. Apr 2020
Die Blume hat keinen Alphakanal sondern eine transparente Farbe.
Ich benutze übrigens das bei Delphi 10.3 enthaltene pngimage.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
23. Apr 2020
Nein.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
23. Apr 2020
Kriege das nicht reproduziert mit Delphi 10.3... Habe LoadFromFile probiert und Laden zur Entwurfszeit. Kein Fehler.
Spannend wird es eh erst bei Palettenbildern mit Alpha-Kanal.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
22. Apr 2020
Lad mal die PNGs hoch.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
22. Apr 2020
Ups. Ist angehängt.
Dann haben sie das wohl inzwischen repariert, dass Replace mit Transparenz klarkommt so wie es Add und Insert schon vorher konnten.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
17. Apr 2020
Ich muss meine Aussage von vorhin korrigieren: Mir fällt nämlich auf, dass der von mir beschriebene Bug nur mit TImageList.AddMaked(BMP, clNone) und InsertMasked auftritt (ReplaceMasked unterstützt allgemein keine Alphakanäle), nicht jedoch mit TImage, während mein Bugfix (Kopieren der Scanline-Bytes) in TImageList fehlerfrei funktioniert aber in TImage unter bestimmten Umständen zu einem extrem...
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
17. Apr 2020
BMP.Assign(PNG) klappt auch in D2009 schon nicht richtig. Die PNG wird zu Schwarz geglättet, die Transparenz bleibt aber. Sprich aus zu 50% deckendem Weiß wird zu 50% deckendes Mittelgrau. Man darf sich nach Assign dann die Scanlines kopieren. Ganz toll.
In Delphi 2005 gab es meines Wissens kein PNG, da musste man PNGDelphi installieren.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
15. Apr 2020
Na ja, die PNG wird es dir nicht von selbst sagen. Da musst du mit einem geeigneten Programm nachschauen. Die Unterstützung für PNG8 mit Alphakanal ist sehr uneinheitlich.
-
Forum: Object-Pascal / Delphi-Language
by Redeemer,
14. Apr 2020
Sind die PNGs, wo es nicht geht, Palettenbilder?