![]() |
AW: RGB zu Alpha
Standard ist eigentlich die Farbe eines Eckpixels als Transparenz anzunehmen. Ich glaube es war die linke untere Ecke. Kann mich aber auch täuschen.
Edith fand in den Microsoft Richtlinen zum Icon Design "Use magenta (R255 G0 B255) as the background transparency color." Sherlock |
AW: RGB zu Alpha
|
AW: RGB zu Alpha
Also wenn ich ein Icon habe, Neon-Rote Umrandung mit Transparenz in der Mitte würde mir doch eine Abfrage nach oben/links <> unten/links in beiden Fällen meinen Rahmen löschen, da muss ich noch mal lesen oder ich verstehe das gerade falsch.
Gehört ja eh nicht hier rein, tut mir leid. |
AW: RGB zu Alpha
Hallo AW
du schreibst, dass du die Luminanz und nicht den Grauwert verwenden willst. Vergleiche aber ![]() und ![]() Deine in #24 gepostete Funktion function TSkinEngine.Rgb2Gray(RGBValue: COLORREF): COLORREF; stdcall; liefert dir also die von dir gesuchte Luminanz wie Schokohase in #27 zeigt. Deine ursprüngliche Funktion hat auch extrem helle Farben wie RGB( 250 253 241 ) als sehr dunkel (0) bewertet. Du hast in #24 eine Grafik gepostet, schwarz wird dort durch deine Funktion unsichtbar. Das ist doch genau das, was du von deiner Funktion erwartest. Wenn du bereits vorhandene Icons korrekt darstellen willst, dann bringt dein Weg über "sehr dunkle Pixels => unsichtbar setzen" natürlich nicht den gewollten Effekt. Gruss |
AW: RGB zu Alpha
Zitat:
Du vergisst eins dabei das dieses keinen Alphawert kennt also in dem sinne da nur 16 Farben enthalten sind. Bei meinem Hochauflösenden Icon von meinem Piano gibt es das Problem nicht und das ist komplett schwarz. Das müsste dann deiner Meinung nach komplett unsichtbar sein. ;) Ich bleibe bei meiner Funktion Rgb2Alpha auch wenn Rgb2Gray fast das gleiche ist. :) Irgendwann muss mal Schluss sein sonst beschäftige ich mich die nächsten 10 Jahre noch damit. :coder: gruss |
AW: RGB zu Alpha
Ich vermute, dass dein "schwarzes Piano Bild" bereits Alphakanalwerte enthält BEVOR du dieses Bild deiner "...toAlpha" Bearbeitung fütterst. Dann macht deine Bearbeitung genau nix:
Wenn dem so ist, dann behältst du ja die bereits vorhandenen p>0 AlphaWerte des Bilds bei und beachtest das Funktionsresultat von "...toAlpha" ausschliesslich im Fall p=0 (transparent) - und wenn du im Fall p=0 Glück hast und an den p=0 Stellen der RGB Wert 0 ist, bleibt dein Icon durch deine Bearbeitung komplett unverändert. if (p=0) then if (...toAlpha > 0) then p := 255; Bei deinem "schwarzen Käfer Bild" hingegen fehlt der Alphakanal und du fügst einen Alphakanal mit deiner Bearbeitung hinzu. Dabei gilt: Genau alle Pixel, welche Helligkeit 0 aufweisen werden durch deine Bearbeitung durchsichtig. Deshalb erscheint die schwarze Farbe des Käfers transparent. Wie erwähnt: Wenn du bereits bestehende Icons irgendwo hinmalen willst, dann ist es sicher besser, wenn du die Icons vor dem Anzeigen nicht mit deiner ...toAlpha bearbeitest. |
AW: RGB zu Alpha
Wenn ich mich recht entsinne galt "früher" für Windows Icons, insbesondere denen mit nur 16 Farben, dass clFuchsia als "Key"-Farbe, also Transparenz definiert wurde. Darüber hinaus gab es auch die Variante, dass eine zusätzliche 1-Bit Maske ergänzend zu dem Bitmap in der Datei ist. Bei moderneren Icons, insbesondere denen die intern als PNG hinterlegt sind und 32bpp haben, gibt es gleich einen kompletten 8 Bit Alphakanal der fest zum Bild gehört.
Wenn es sich also wirklich um Icons im Sinne von "liegt als .ico-Datei vor" handelt, dürfte das ganze eigentlich ohne jede "künstliche Generierung" von Transparenzen abhandelbar sein. Von daher bin ich etwas verwundert darüber, warum du das überhaupt machst. Edit: Michaels Beitrag geht da in dieselbe Richtung würde ich schätzen. |
AW: RGB zu Alpha
Zitat:
![]() Zitat:
Was ist denn nun besser das erste oder zweite Icon. :cyclops: Zitat:
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz