Liaw, Andy
2004-Dec-03 11:15 UTC
[R] Getting R to emit an image file as a pipe or Base64 strea m: Mac OSX 10.3 - R 2.0.1
> From: Yuandan Zhang > > If you want to call R from perl, why don't you do a simple > system call like: > > $callR="/usr/loca/bin/R CMD BATCH plotscript.R"; > system ($callR); > > It is not necessary to start X display if anything can be > done in backgroundBut the problem is jpeg()/png() are not available unless an X display is available to the R process (one of the FAQs). Andy> On Fri, 3 Dec 2004 12:07:24 +1100 (EST) > "Thuan-Jin Kee" <kee at wehi.EDU.AU> wrote: > > > Hi All, > > > > Anybody know how to make R emit base64 encoded text in some > way that perl > > can grab it, instead of planting a file on your harddrive > when calling > > JPEG or PNG? > > I've managed to get these scripts to work and put a file on > the harddisk > > > > #!/usr/bin/perl -Wall > > # by jin kee. a simple script to demonstrate > > # the needed steps to get R to emit a jpeg. > > > > use strict; > > > > my($callR, $callRold); > > > > # need to start X if is isn't already started. > > `open /Applications/Utilities/X11.app`; > > > > > > #need to get let the R program know where to look > > #for the display immediately before calling > > #the R executible. > > $callR =<<MARKER; > > DISPLAY=:0.0; export DISPLAY; > > /usr/bin/R --vanilla <plotscript.R; > > MARKER > > > > system($callR); > > > > # end script > > > > #!/usr/bin/R > > peg("~/Desktop/test.jpg"); > > plot(rnorm(100)); > > dev.off(); > > q(save = "no"); > > > > > > My sysadmin says that the apache user can't write to the disk due to > > security policy, so he wants to know if I can emit the jpeg > as a base64 > > stream and embedd it into the dynamically generated tag > using a DATA tag > > to inline the image. > > > > http://www.elf.org/essay/inline-image.html > > > > http://www.faqs.org/rfcs/rfc2397.html > > > > i've tried searching the R-project.org site and > help.search() and no luck. > > > > Yours > > Jin > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > > -- > > -- > Yuandan > Zhang, PhD > > Animal Genetics and Breeding Unit > The University of New England > Armidale, NSW, Australia, 2351 > > E-mail: yzhang4 at metz.une.edu.au > Phone: (61) 02 6773 3786 > Fax: (61) 02 6773 3266 > http://agbu.une.edu.au > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > AGBU is a joint venture of NSW Primary Industries > and The University of New England to undertake > genetic R&D for Australia's Livestock Industries > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > >
Thuan-Jin Kee
2004-Dec-04 16:48 UTC
[R] Getting R to emit an image file as a pipe or Base64 stream: Mac OSX 10.3 - R 2.0.1
That's right, Thanks for your replies. The reason why I started X11.app first is because Mac OS 10.3.5 doesn't launch X on startup, and instead uses its own Aqua/Quartz gui to render most windows until you specifically ask for X. The issue we're looking at is how to get R to emit the file as base64, or to somehow hand me a pipe. Is there a way to redirect the file in jpeg() to stdout? still hacking. Jin Kee>> From: Yuandan Zhang >> >> If you want to call R from perl, why don't you do a simple >> system call like: >> >> $callR="/usr/loca/bin/R CMD BATCH plotscript.R"; >> system ($callR); >> >> It is not necessary to start X display if anything can be >> done in background > > But the problem is jpeg()/png() are not available unless an X display is > available to the R process (one of the FAQs). > > Andy > >> On Fri, 3 Dec 2004 12:07:24 +1100 (EST) >> "Thuan-Jin Kee" <kee at wehi.EDU.AU> wrote: >> >> > Hi All, >> > >> > Anybody know how to make R emit base64 encoded text in some >> way that perl >> > can grab it, instead of planting a file on your harddrive >> when calling >> > JPEG or PNG? >> > I've managed to get these scripts to work and put a file on >> the harddisk >> > >> > #!/usr/bin/perl -Wall >> > # by jin kee. a simple script to demonstrate >> > # the needed steps to get R to emit a jpeg. >> > >> > use strict; >> > >> > my($callR, $callRold); >> > >> > # need to start X if is isn't already started. >> > `open /Applications/Utilities/X11.app`; >> > >> > >> > #need to get let the R program know where to look >> > #for the display immediately before calling >> > #the R executible. >> > $callR =<<MARKER; >> > DISPLAY=:0.0; export DISPLAY; >> > /usr/bin/R --vanilla <plotscript.R; >> > MARKER >> > >> > system($callR); >> > >> > # end script >> > >> > #!/usr/bin/R >> > peg("~/Desktop/test.jpg"); >> > plot(rnorm(100)); >> > dev.off(); >> > q(save = "no"); >> > >> > >> > My sysadmin says that the apache user can't write to the disk due to >> > security policy, so he wants to know if I can emit the jpeg >> as a base64 >> > stream and embedd it into the dynamically generated tag >> using a DATA tag >> > to inline the image. >> > >> > http://www.elf.org/essay/inline-image.html >> > >> > http://www.faqs.org/rfcs/rfc2397.html >> > >> > i've tried searching the R-project.org site and >> help.search() and no luck. >> > >> > Yours >> > Jin >> > >> > ______________________________________________ >> > R-help at stat.math.ethz.ch mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-help >> > PLEASE do read the posting guide! >> http://www.R-project.org/posting-guide.html >> >> >> -- >> >> -- >> Yuandan >> Zhang, PhD >> >> Animal Genetics and Breeding Unit >> The University of New England >> Armidale, NSW, Australia, 2351 >> >> E-mail: yzhang4 at metz.une.edu.au >> Phone: (61) 02 6773 3786 >> Fax: (61) 02 6773 3266 >> http://agbu.une.edu.au >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> AGBU is a joint venture of NSW Primary Industries >> and The University of New England to undertake >> genetic R&D for Australia's Livestock Industries >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> ______________________________________________ >> R-help at stat.math.ethz.ch mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide! >> http://www.R-project.org/posting-guide.html >> >> > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >