6

I'm assuming the Raster package has what I need... I'm simply wanting to invert the colors in a Raster image.

The actual scenario is this: I want to invert the raster image returned by a ggmap call:

 library(ggmap)
 ggmap(get_stamenmap(maptype = "toner"))

Regular toner map

I want to invert the colors to get a white-on-black version of the Stamen Toner map:

Inverted toner map

rcs
  • 67,191
  • 22
  • 172
  • 153
dancow
  • 3,228
  • 2
  • 26
  • 28

1 Answers1

11

This inverts the raster object returned by get_stamenmap()

library("ggmap")
m <- get_stamenmap(maptype = "toner")

# invert colors in raster
invert <- function(x) rgb(t(255-col2rgb(x))/255)    
m_inv <- as.raster(apply(m, 2, invert))

# copy attributes from original object
class(m_inv) <- class(m)
attr(m_inv, "bb") <- attr(m, "bb")

ggmap(m_inv)

ggmap inverted

rcs
  • 67,191
  • 22
  • 172
  • 153