Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi RGB zu Alpha (https://www.delphipraxis.net/197574-rgb-zu-alpha.html)

Sherlock 21. Aug 2018 09:21

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

Schokohase 21. Aug 2018 09:25

AW: RGB zu Alpha
 
Wie gut, dass es Dokumentationen gibt

http://docwiki.embarcadero.com/Libra...ansparentColor

KodeZwerg 21. Aug 2018 09:33

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.

Michael II 21. Aug 2018 11:00

AW: RGB zu Alpha
 
Hallo AW

du schreibst, dass du die Luminanz und nicht den Grauwert verwenden willst.

Vergleiche aber

https://de.wikipedia.org/wiki/Luminanz

und

https://de.wikipedia.org/wiki/Grauwert

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

EWeiss 21. Aug 2018 11:39

AW: RGB zu Alpha
 
Zitat:

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.
Aber nicht das ganze Icon.
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

Michael II 21. Aug 2018 13:11

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.

Medium 21. Aug 2018 13:13

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.

EWeiss 21. Aug 2018 16:49

AW: RGB zu Alpha
 
Zitat:

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.
Deshalb..

Zitat:

dann ist es sicher besser
Es ist nicht besser siehe link!
Was ist denn nun besser das erste oder zweite Icon. :cyclops:
Zitat:

Dann macht deine Bearbeitung genau nix:
Muss sie auch nicht, destotrotz muss ich alle Icons durchjagen.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr.
Seite 4 von 4   « Erste     234   

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