From hb at stat.berkeley.edu  Fri Jul 21 18:35:14 2006
From: hb at stat.berkeley.edu (Henrik Bengtsson)
Date: Fri, 21 Jul 2006 09:35:14 -0700
Subject: [Rd] png() and image()
In-Reply-To: <44C08042.5070807@ebi.ac.uk>
References: <59d7961d0607201855x37b2fb3bw6d89939e1409287d@mail.gmail.com>
	<44C08042.5070807@ebi.ac.uk>
Message-ID: <59d7961d0607210935i26eb297apf0e4e5981ebb4902@mail.gmail.com>

Hi Wolfgang,

thanks for this - I took a look the EBImage webpage
[http://www.ebi.ac.uk/~osklyar/projects/EBImage/] and it looks very
nice.  Are there any plans for Windows support too?  I am looking for
a cross-platform solution.

Cheers

Henrik

On 7/21/06, Wolfgang Huber <huber at ebi.ac.uk> wrote:
>
> Hi Henrik,
> this does not directly answer your question, but you might be able to
> use the function write.image in the package EBImage (Bioconductor) to
> write matrices into image files (e.g. PNG or JPEG), this might be more
> flexible and also faster than what you're trying to do.
>   Best wishes
>   Wolfgang
> ------------------------------------------------------------------
> Wolfgang Huber  EBI/EMBL  Cambridge UK  http://www.ebi.ac.uk/huber
>
> Henrik Bengtsson wrote:
> > Hi,
> >
> > I try to create PNG images of a certain size where each pixel
> > intensity corresponds to exactly one probe signal in an Affymetrix
> > array.  I try to use png() and image() with zero margins to do this.
> > Example:
> >
> > z <- matrix(1:15, nrow=45, ncol=30)
> > png("large.png", height=nrow(z), width=ncol(z), bg="red")
> > par(mar=c(0,0,0,0))
> > image(z, col=gray.colors(16), axes=FALSE)
> > dev.off()
> >
> > z <- matrix(1:15, nrow=5, ncol=3)
> > png("tiny.png", height=nrow(z), width=ncol(z), bg="red")
> > par(mar=c(0,0,0,0))
> > image(z, col=gray.colors(16), axes=FALSE)
> > dev.off()
> >
> > The problem is that on WinXP the very bottom row and the very right
> > column of pixels in red.  Trying on Linux, it is only the very right
> > column that is red.  See attached images (you might have to zoom in to
> > see it).  I try to do this in R v2.3.1.  The same effect is seen if
> > the jpeg() device is used.
> >
> > When rescaling, the same effect is seen (the red border effect is one
> > pixel wide), e.g.
> >
> > z <- matrix(1:15, nrow=45, ncol=30)
> > png("large5.png", height=5*nrow(z), width=5*ncol(z), bg="red")
> > par(mar=c(0,0,0,0))
> > image(z, col=gray.colors(16), axes=FALSE)
> > dev.off()
> >
> > I might be asking for something that is not supported, but is there a
> > way around this?  It is a problem, because I wish to tile the images
> > in an HTML page.
> >
> > Thanks
> >
> > Henrik
> >
>



[Rd] png() and image()
Henrik Bengtsson