[R] display SVG, PNG, GIF, JPEG, TIFF, PPM in new plot frame

baptiste auguie baptiste.auguie at gmail.com
Mon Jun 15 21:58:53 CEST 2009


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




More information about the R-help mailing list