Using tcltk to display jpeg images
Jonathan Williams wrote:
Thank you, I am running R 2.1.1 via Windows XP. Sorry, you will realise how little I know about this because I did not know that the operating system would make a difference!
No problems. Indeed, you have to install BINARIES of the img tcl package. One solution is to install a Tcl/Tk distribution that includes already that package. ActiveTcl is the one that comes to mind immediatelly. Here is the procedure to use it: - Go to http://www.activestate.com/Products/ActiveTcl/, then 'Free download', then download ActiveTcl 8.4.11.0 for Windows, which contains Img 1.3. Do NOT download ActiveTcl 8.5.XXX: it is not compatible with R! - Install it, let's say in 'c:\Tcl' - Create a copy of the shortcut that starts R. Rename it (for instance R 2.1.1 - ActiveTcl). - Right click on this shortcut and select 'Properties' in the context menu. Then change taget from: "C:\Program Files\R\rw2011\bin\Rgui.exe" to: "C:\Program Files\R\rw2011\bin\Rgui.exe" MY_TCLTK=c:/Tcl - Start R from this shortcut. - Load the tcltk package and create a Tk window: > library(tcltk) > tt <- tktoplevel() You know that you are using ActiveTcl, and not the Tcl package provided with R because the icon of that window is changed from a red "Tk" to the brown plume that is the icon of ActiveState. - At this point, the Img Tcl package is available to you from R. The rest is taken from http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/showImage.html: > R.base.dir <- system.file() > setwd(paste(R.base.dir,"/../../doc/html",sep="")) > require(tcltk) Loading required package: tcltk Loading Tcl/Tk interface ... done [1] TRUE > tt <- tktoplevel() > tclRequire("Img") <Tcl> 1.3 > image1 <- tclVar() > tkcmd("image","create","photo",image1,file="logo.jpg") <Tcl> ::RTcl1 > imgAsLabel <- tklabel(tt,image=image1,bg="white") > tkpack(imgAsLabel) <Tcl> You should read also the R for Windows FAQ 3.6. Finally, when it works, there is another (and perhaps simpler) way to load the Img tcl package, using the Tcl version distributed with R. You just have to specify: addTclPath("c:/tcl/lib"). So, you can start R normally (using the default Tcl distributed with it), and do: > library(tcltk) Loading Tcl/Tk interface ... done > addTclPath("c:/xtra/tcl/lib") # This is how you gain access to the ActiveTcl library! > R.base.dir <- system.file() > setwd(paste(R.base.dir,"/../../doc/html",sep="")) > tt <- tktoplevel() > tclRequire("Img") <Tcl> 1.3 > image1 <- tclVar() > tkcmd("image","create","photo",image1,file="logo.jpg") <Tcl> ::RTcl1 > imgAsLabel <- tklabel(tt,image=image1,bg="white") > tkpack(imgAsLabel) <Tcl> Note that you can relocate the /lib subdir of ActiveTcl, or only /lib/Img1.3 and use AddTclPath() to access it at the new location. This way, you don't have to install ActiveTcl on all the computers where you want to use Img. You just need to copy /lib/Img1.3 there and use AddTclPath(). However, take care of the ActiveState license that constrains you to download their software from their web site and to register. So, you can only use this method for multiple installations on your own computers... but not for redistribution! Best, Philippe Grosjean ..............................................<??}))><........ ) ) ) ) ) ( ( ( ( ( Prof. Philippe Grosjean ) ) ) ) ) ( ( ( ( ( Numerical Ecology of Aquatic Systems ) ) ) ) ) Mons-Hainaut University, Pentagone (3D08) ( ( ( ( ( Academie Universitaire Wallonie-Bruxelles ) ) ) ) ) 8, av du Champ de Mars, 7000 Mons, Belgium ( ( ( ( ( ) ) ) ) ) phone: + 32.65.37.34.97, fax: + 32.65.37.30.54 ( ( ( ( ( email: Philippe.Grosjean at umh.ac.be ) ) ) ) ) ( ( ( ( ( web: http://www.umh.ac.be/~econum ) ) ) ) ) http://www.sciviews.org ( ( ( ( ( ..............................................................
Jonathan -----Original Message----- From: Philippe Grosjean [mailto:phgrosjean at sciviews.org] Sent: 23 August 2005 10:19 To: Jonathan Williams Cc: Ethz. Ch Subject: Re: [R] Using tcltk to display jpeg images Hello, You have to tell us on which platform you want to install the Tcl img package. If it is Windows, I can help. Best, Philippe ..............................................<??}))><........ ) ) ) ) ) ( ( ( ( ( Prof. Philippe Grosjean ) ) ) ) ) ( ( ( ( ( Numerical Ecology of Aquatic Systems ) ) ) ) ) Mons-Hainaut University, Pentagone (3D08) ( ( ( ( ( Academie Universitaire Wallonie-Bruxelles ) ) ) ) ) 8, av du Champ de Mars, 7000 Mons, Belgium ( ( ( ( ( ) ) ) ) ) phone: + 32.65.37.34.97, fax: + 32.65.37.30.54 ( ( ( ( ( email: Philippe.Grosjean at umh.ac.be ) ) ) ) ) ( ( ( ( ( web: http://www.umh.ac.be/~econum ) ) ) ) ) http://www.sciviews.org ( ( ( ( ( .............................................................. Jonathan Williams wrote:
Dear R Helpers, Does anyone know how to use tcltk to display jpeg images? The manual says that one must use Tk_PhotoCreateImageFormat to register the jpeg image handler. The "ActiveTcl User Guide" (http://support.serv.ch/lang/tcl/img/doc/img-jpeg.html) says:- "The package img::jpeg is a sub-package of Img. It can be loaded as a part of the complete Img support, via package require Img, or on its own, via package require img::jpeg" I downloaded the tkimg1.3 file from http://kent.dl.sourceforge.net/sourceforge/tkimg/tkimg1.3.zip, but I cannot figure out how to 'build' the files to link them to R. Would someone be so kind as to tell me how to do this? Better still, does anyone have an R routine that will do it, since I have no experience of this kind of programming. Thanks, in advance, Jonathan Williams
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!