Robbie Morrison
2009-Jun-15 19:42 UTC
[R] display SVG, PNG, GIF, JPEG, TIFF, PPM in new plot frame
Dear R-help I want to display an image file in a new plot frame. SVG is my preferred format, but I can also consider PNG, GIF, JPEG, TIFF, and PPM (from ImageMagick). By way of background (although not material to this posting), the image file is generated by a call to 'dot' (part of the 'Graphviz' suite) after the required .dot file has been produced using hand-crafted R code. I have reduced my options to the following. Any corrections, suggestions, or comments would be most welcome. I realize the list is quite long, but if the feedback converges, I will refine the material below and add it to a new page on the R-wiki. # HEATH WARNING: none of this code has been run # --------------------------------- x11() # open another plot frame as required (UNIX-alikes) plot.new() # SVG (hypothetical code) # --------------------------------- # SVG is not supported in this context (it would # appear) library(?????) svg <- read.svg(file = "my.svg") # hypothetical call plot(svg) # PNG, JPEG, GIF, TIFF, PPM # --------------------------------- # package 'EBImage' is an image processing toolkit # -- the package requires ImageMagick 6.2.4 or # better library(EBImage) g <- system.file("images", "my.gif", package = "EBImage") gif <- readImage(g) display(gif) # similarly for "my.png", "my.jpg", "my.ppm", and # "my.tiff", depending on the capabilities of the # 'ImageMagick' installation you have # PNG, JPG, TIFF # --------------------------------- # package 'rgdal' -- requires system library and # headers for the 'GDAL' geospatial data library library(rgdal) p <- system.file("my.png", package = "rgdal") h <- GDAL.open(p) # returns a file handle getDriverLongName(getDriver(h)) # should report "Portable Network Graphics" displayDataset(h) GDAL.close(h) # note that recent versions of 'ReadImages' (see # the JPEG section) will also read PNG [is the call # still 'read.jpg'? -- or is it now 'read.png'?] # JPEG # --------------------------------- # package 'rimage' provides functions for # processing images and for reading JPEG files -- # this package requires system libraries and # headers for 'libjpeg' and 'fftw-2' # # package 'ReadImages' is essentially a subset of # 'rimage' and does not require 'fftw-2' library(ReadImages) # subset of package 'rimage' j <- system.file("data", "my.jpg", package = "ReadImages") jpeg <- read.jpeg(j) plot(jpeg) library(rimage) j <-system.file("data", "my.jpg", package = "rimage") jpeg <- read.jpeg(j) plot(jpeg) # GIF # --------------------------------- # package 'caTools' provides a number of utility # functions, including calls for reading and # writing GIF files -- this package depends on # package 'bitopts' (but contains no system # requirements) # # note that image() needs 'flip' = TRUE and 'asp' # sets the aspect ratio to unity library(caTools) gif <- read.gif("my.gif", verbose = TRUE, flip = TRUE) image(gif$image, col = gif$col, main = gif$comment, asp = 1) # TIFF # --------------------------------- # package 'rtiff' reads TIFF format images and # return them as pixmaps library(rtiff) tif <- read.tiff("my.tif") plot(tif) # PPM (similarly for PGM and PPM) # --------------------------------- # package 'pixmap' provides functions for the # import, export, plotting and manipulation of # bitmapped images (the package has no R # dependencies or system requirements) library(pixmap) p <- system.file("my.ppm", package="pixmap") ppm <- read.pnm(p) plot(ppm) Additional material can be added to the plot frame, thereby relegating the original graphic to that of a backing image. See also the following packages: 'GDD' - produce bitmaps without X11 Finally, the ImageMagick 'display' utility can be called directly from R, thereby bypassing the need to read and display the graphics file as data: frameTitle <- "\"override default\"" graphic <- "my.png" # ImageMagick also supports PNG, GIF, JPEG, TIFF, PPM imagemagickCall <- paste("display", "-title", frameTitle, graphic, "&") ret <- system(imagemagickCall) if ( ret != 0 ) warning("display call returned fail: ", ret) thanks in advance, Robbie --- Robbie Morrison PhD student -- policy-oriented energy system simulation Technical University of Berlin (TU-Berlin), Germany University email (redirected) : morrison at iet.tu-berlin.de Webmail (preferred) : robbie at actrix.co.nz [from IMAP client]
baptiste auguie
2009-Jun-15 19:58 UTC
[R] display SVG, PNG, GIF, JPEG, TIFF, PPM in new plot frame
Hi, the grImport package provides some functionality for svg and postscript graphics, http://cran.r-project.org/web/packages/grImport/index.html Best, baptiste Robbie Morrison wrote:> Dear R-help > > I want to display an image file in a new plot frame. > > SVG is my preferred format, but I can also consider > PNG, GIF, JPEG, TIFF, and PPM (from ImageMagick). > > By way of background (although not material to this > posting), the image file is generated by a call to > 'dot' (part of the 'Graphviz' suite) after the required > .dot file has been produced using hand-crafted R code. > > I have reduced my options to the following. Any > corrections, suggestions, or comments would be most > welcome. > > I realize the list is quite long, but if the feedback > converges, I will refine the material below and add it > to a new page on the R-wiki. > > # HEATH WARNING: none of this code has been run > # --------------------------------- > > x11() # open another plot frame as required (UNIX-alikes) > plot.new() > > # SVG (hypothetical code) > # --------------------------------- > # SVG is not supported in this context (it would > # appear) > > library(?????) > svg <- read.svg(file = "my.svg") # hypothetical call > plot(svg) > > # PNG, JPEG, GIF, TIFF, PPM > # --------------------------------- > # package 'EBImage' is an image processing toolkit > # -- the package requires ImageMagick 6.2.4 or > # better > > library(EBImage) > g <- system.file("images", "my.gif", package = "EBImage") > gif <- readImage(g) > display(gif) > > # similarly for "my.png", "my.jpg", "my.ppm", and > # "my.tiff", depending on the capabilities of the > # 'ImageMagick' installation you have > > # PNG, JPG, TIFF > # --------------------------------- > # package 'rgdal' -- requires system library and > # headers for the 'GDAL' geospatial data library > > library(rgdal) > p <- system.file("my.png", package = "rgdal") > h <- GDAL.open(p) # returns a file handle > getDriverLongName(getDriver(h)) # should report "Portable Network Graphics" > displayDataset(h) > GDAL.close(h) > > # note that recent versions of 'ReadImages' (see > # the JPEG section) will also read PNG [is the call > # still 'read.jpg'? -- or is it now 'read.png'?] > > # JPEG > # --------------------------------- > # package 'rimage' provides functions for > # processing images and for reading JPEG files -- > # this package requires system libraries and > # headers for 'libjpeg' and 'fftw-2' > # > # package 'ReadImages' is essentially a subset of > # 'rimage' and does not require 'fftw-2' > > library(ReadImages) # subset of package 'rimage' > j <- system.file("data", "my.jpg", package = "ReadImages") > jpeg <- read.jpeg(j) > plot(jpeg) > > library(rimage) > j <-system.file("data", "my.jpg", package = "rimage") > jpeg <- read.jpeg(j) > plot(jpeg) > > # GIF > # --------------------------------- > # package 'caTools' provides a number of utility > # functions, including calls for reading and > # writing GIF files -- this package depends on > # package 'bitopts' (but contains no system > # requirements) > # > # note that image() needs 'flip' = TRUE and 'asp' > # sets the aspect ratio to unity > > library(caTools) > gif <- read.gif("my.gif", verbose = TRUE, flip = TRUE) > image(gif$image, col = gif$col, main = gif$comment, asp = 1) > > # TIFF > # --------------------------------- > # package 'rtiff' reads TIFF format images and > # return them as pixmaps > > library(rtiff) > tif <- read.tiff("my.tif") > plot(tif) > > # PPM (similarly for PGM and PPM) > # --------------------------------- > # package 'pixmap' provides functions for the > # import, export, plotting and manipulation of > # bitmapped images (the package has no R > # dependencies or system requirements) > > library(pixmap) > p <- system.file("my.ppm", package="pixmap") > ppm <- read.pnm(p) > plot(ppm) > > Additional material can be added to the plot frame, > thereby relegating the original graphic to that of a > backing image. > > See also the following packages: > > 'GDD' - produce bitmaps without X11 > > Finally, the ImageMagick 'display' utility can be > called directly from R, thereby bypassing the need to > read and display the graphics file as data: > > frameTitle <- "\"override default\"" > graphic <- "my.png" # ImageMagick also supports PNG, GIF, JPEG, TIFF, PPM > imagemagickCall <- paste("display", "-title", frameTitle, graphic, "&") > ret <- system(imagemagickCall) > if ( ret != 0 ) warning("display call returned fail: ", ret) > > thanks in advance, Robbie > --- > Robbie Morrison > PhD student -- policy-oriented energy system simulation > Technical University of Berlin (TU-Berlin), Germany > University email (redirected) : morrison at iet.tu-berlin.de > Webmail (preferred) : robbie at actrix.co.nz > [from IMAP client] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > >-- _____________________________ Baptiste Augui? School of Physics University of Exeter Stocker Road, Exeter, Devon, EX4 4QL, UK Phone: +44 1392 264187 http://newton.ex.ac.uk/research/emag