Wie werden zwei Symbole zusammengefügt? (überlagern Sie ein Symbol übereinander)

7

Ich habe zwei 16x16 RGB / A .ICO-Symboldateien, die jeweils in ein separates System.Drawing.Icon -Objekt geladen werden.

Wie würden Sie ein neues Objekt Icon erstellen, das die Zusammenführung der beiden Symbole (eines überlagert) enthält?

Bearbeiten :
Ich war wahrscheinlich nicht so klar, ich möchte nicht zwei Bilder miteinander verschmelzen, ich möchte ein Symbol übereinander legen.

Ich sollte hinzufügen, dass die Symbole bereits transparente Teile enthalten und ich brauche kein transparentes "Blending", um beide Symbole sichtbar zu machen. Was ich brauche, ist das Überlagern der nicht transparenten Pixel eines Symbols über dem oberen eines anderen Symbols. Die transparenten Pixel sollten das Hintergrundsymbol durchscheinen lassen.

Sehen Sie sich beispielsweise das Stackoverflow-Symbol an. Es hat einige Bereiche, die grau und orange sind, und einige Bereiche, die völlig transparent sind. Stellen Sie sich vor, Sie möchten das SO-Symbol über dem Firefox-Symbol einblenden. Sie würden die Grautöne und Orangen des SO-Symbols in voller Farbe sehen, und wo das SO-Symbol transparent ist, würden Sie diese Teile des Firefox-Symbols sehen.

    
demoncodemonkey 08.04.2010, 12:30
quelle

2 Antworten

16

Hier ist die letzte Funktion, die ich mir ausgedacht habe. Es war einfacher als ich dachte ...
Danke an Eoin Campbell für die harte Arbeit.

%Vor%     
demoncodemonkey 09.04.2010, 17:18
quelle
7

BEARBEITEN

re: Ihr Kommentar: Für den Anfang ... mein Bild ist nicht schwarz & amp; transparent. Sie sind schwarz und weiß ... beide sind auf 0,6f (60%) Deckkraft eingestellt, also wo es ein Schwarz auf Schwarz (& gt; 100% Schwarz) oder Weiß auf Weiß (& gt; 100% Weiß) gibt, sieht es gut aus, aber dafür die Überlappungen haben Sie 60% Weiß-Schwarz-Mix, die Ihnen die Graue Farbe gibt ... was Sie tun könnten, ist 2 separate ImageAttributes zu erstellen und die Trübungen separat zu optimieren, um zu sehen, ob Sie die erwartete Ausgabe erhalten können (siehe geänderten Code). Es wird anders sein, wenn Ihre Bilder transparente Abschnitte haben.

hat einen Code aus hier

genommen

Der Trick besteht darin, jedes Bild mit einer Transparenz zu zeichnen, so dass sie sich gegenseitig sehen können. Nicht spezifisch für Icons, dies sollte für jeden Bildtyp funktionieren. Sie können ToBitmap() Ihre Symbole zuerst, um sie als Image Objects afaik zu erhalten.

%Vor%     
Eoin Campbell 08.04.2010 15:58
quelle

Tags und Links