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