R: Füge einen Alpha-Wert zum PNG-Bild hinzu

Gibt es eine Möglichkeit, ein RasterGrob-Objekt teilweise transparent zu machen, um einen Alpha-Faktor hinzuzufügen? Ich verwende ein Logo als Wasserzeichen in einemggplot2 Plotten durch Einfügen eines PNG-Bildes (als rasterGrob) vonannotation_custom. Im Gegensatz zuannotate, dasalpha Die Option funktioniert hier nicht, daher muss das Bild vermutlich im Voraus geändert werden.

Als einfaches Beispiel, basierend auf dem, was Baptiste in seinem Blog vorschlägt, mache ich es bisher so:

img.path <- readPNG("logo.png")
pngob <- rasterGrob(img.path)
qplot(1:10, rnorm(10), geom = "blank") +
    annotation_custom(pngob, xmin=6.8, xmax=Inf, ymin=1, ymax=Inf) +
    geom_point()

Das obige Beispiel funktioniert einwandfrei.

Tippen Sie jedochdim(pngob) in die Konsole zurückkehrtNULL. Daher der unten stehende Vorschlag, wie man einstelltalpha-Wert funktioniert nicht:

m <- pngob
w <- matrix(rgb(m[,,1],m[,,2],m[,,3], m[,,4] * 0.2), nrow=dim(m)[1])

Dies gibt den Fehler zurückError in m[, , 1]: wrong number of dimensions

Antworten auf die Frage(1)

Ihre Antwort auf die Frage