\name{resize} \alias{flip} \alias{flop} \alias{resize} \alias{rotate} \concept{transformation} \concept{rotation} \concept{resize} \concept{mirror} \title{Spatial linear transformations} \description{ Rotates, mirrors and resizes images. } \usage{ flip(x) flop(x) resize(x, w, h, blur=1, filter="Lanczos") rotate(x, angle=90) } \arguments{ \item{x}{An \code{Image} object or an array.} \item{w, h}{Width and height of a new image. One of these arguments can be missing to enable proportional resizing. } \item{blur}{The blur factor, where 1 (\code{TRUE}) is blurry, 0 (\code{FALSE}) is sharp.} \item{filter}{Interpolating sampling filter.} \item{angle}{Image rotation angle in degrees.} } \value{ An \code{Image} object or an array, containing the transformed version of \code{x}. } \details{ \code{flip} transforms \code{x} in its vertical mirror image by reflecting the pixels around the central x-axis. \code{flop} transforms \code{x} in its horizontal mirror image by reflecting the pixels around the central y-axis. \code{resize} scales the image to the desired dimensions using the supplied interpolating filter. Available filters are: \code{Point}, \code{Box}, \code{Triangle}, \code{Hermite}, \code{Hanning}, \code{Hamming}, \code{Blackman}, \code{Gaussian}, \code{Quadratic}, \code{Cubic}, \code{Catrom}, \code{Mitchell}, \code{Lanczos}, \code{Bessel} and \code{Sinc}. The filter \code{Box} performs a nearest-neighbor interpolation and is fast but introduces considerable aliasing. The filter \code{Triangle} performs a bilinear interpolation and is a good trade-off between speed adn aliasing. Cubic interpolation with the filter \code{Cubic} is also a good trade-off. High-quality and slower interpolation is achieved with the \code{Lanczos} filter. The algorithm used by this ImageMagick function is not well defined. \code{rotate} rotates the image counter-clockwise with the specified angle. Rotated images are usually larger than the originals and have empty triangular corners filled in black. The algorithm used by this ImageMagick function is not well defined. } \seealso{ \code{translate} } \references{ \emph{ImageMagick}: \url{http://www.imagemagick.org}. } \author{ Oleg Sklyar, \email{osklyar@ebi.ac.uk}, 2006-2007 } \examples{ x = readImage(system.file("images", "lena.gif", package="EBImage")) if (interactive()) display(x) y = flip(x) if (interactive()) display(y, title='flip(x)') y = flop(x) if (interactive()) display(y, title='flop(x)') y = resize(x, 128) if (interactive()) display(y, title='resize(x, 128)') y = rotate(x, 30) if (interactive()) display(y, title='rotate(x, 30)') }