[Rd] png() and image()

Wolfgang Huber huber at ebi.ac.uk
Mon Jul 24 13:49:36 CEST 2006


Henrik Bengtsson wrote:
> 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


Hi Henrik,

there are very strong intentions to also make this available as a
Windows precompiled package and/or provide installation instruction for
Windows. Until now however, in spite of some effort, we have failed.

As I understand it, a problem seems to be different dll formats of  MS
Visual C++ (in which ImageMagick is provided) and MinGW.

If anyone is interested in helping with this, they could have a look at
the source package on Bioconductor, and contact us for details.

 Best wishes
 Wolfgang



> 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
>> >
>>


-- 
------------------------------------------------------------------
Wolfgang Huber  EBI/EMBL  Cambridge UK  http://www.ebi.ac.uk/huber



More information about the R-devel mailing list