Ich habe ein PNG-Bild mit Transparenz bekam:Wenden Sie die Farbverlaufsmaske auf ein Bild an, das mit ImageMagick bereits transparent ist?
Jetzt möchte ich ImageMagick anwenden einen diagonalen Gradienten zu seinem Alphakanal nutzen. Ich meine damit, dass seine Deckkraft in der oberen linken Ecke bleibt und allmählich in der unteren rechten Ecke völlig durchsichtig wird. Wie folgt aus:
Also im Grunde möchte ich einen Gradienten erzeugen, und verwenden, die als Maske für das Bild. Aber das Bild hat bereits einen eigenen Alpha-Kanal (Transparenz). Hier ist eine Visualisierung, was ich versuche:
(Original und hier auf Schachbrett für visiblity angezeigte Ergebnis, aber ich meine tatsächliche Transparenz)
Ich glaube, ich verstehe, wie eine diagonale Gradienten zu erzeugen, (Der Befehl barycentric gradient ist dafür sehr nützlich). Dies erzeugt jedoch einen Farbverlauf in den Farbkanälen , d. H. Einen Farb- oder Graustufengradienten. Während ich den Gradienten auf dem Alpha Kanal anwenden möchte.
Von der IM manual Ich verstehe, die -compose CopyOpacity
Operator könnte dafür verwendet werden. Allerdings scheint dies kopieren das Alpha von der Maske auf mein Bild. Ich muss diese Farbverlaufsfarbe auf meinem vorhandenen Alphakanal anwenden, also muss der Alphakanal meines Bildes mal mal mit der Graustufenfarbe aus dem Farbverlaufsbild multipliziert werden.
Was wäre die richtige IM-Befehlszeile, um den oben angezeigten Vorgang auszuführen?
Danke, die 'MPR:' und '-fx' Verwendung waren neu für mich! Inspiriert von deiner Lösung mache ich es jetzt so: 'convert tree.png \ (+ klon -alpha-extrakt \ (+ klon -fx" 1- (i + j * w/h)/(2 * w) " \) -compose multiply -composite \) -compose CopyOpacity -composite result.png 'wobei' -fx "1- (i + j * w/h)/(2 * w)" 'den diagonalen Farbverlauf erzeugt – RocketNuts