2011-08-25 71 views
0

我正在使用R和tcl/tk包來製作R GUI應用程序。現在我遇到了一個問題,無法弄清楚。尋找hlep ...將圖像大小適配到一個小按鈕

我想把一個箭頭圖像放在一個按鈕上。然而,圖像的大小太大,我想要一個小按鈕。我怎樣才能調整圖像大小並適合按鈕大小?

tt <- tktoplevel() 
image1 <- tclVar() 
tcl("image","create","photo",image1,file="toRight.gif") 
imgAsButton <- tkbutton(tt,image=image1,bg="white") 
tkpack(imgAsButton) 

感謝

+1

豈不是一個解決方案更容易修改源圖像?使用GraphicConverter或Photoshop或GIMP將toRight.gif更改爲toRightSmall.gif。 –

+0

看到一個類似的問題(但沒有R):http://stackoverflow.com/questions/31285918/how-to-resize-the-image-on-label-widget –

回答

2

使用圖形轉換器將是最好的選擇,但如果你不能做到這一點,這裏是使用gif文件

iconFile <- "http://barre.nom.fr/vtk/images/logo-tcl-tk.gif" 
tmp <- tempfile() 
download.file(iconFile, tmp) 

iconName <- "::tcl::logo" 
largerIconName <- "::tcl::larger_logo" 
i1 <- tkimage.create("photo", iconName, file = tmp) 
i2 <- tkimage.create("photo", largerIconName) 
## enlarge by factor of 2 
tcl(i2, "copy", i1, zoom=2) 
## shrink by factor of 2 
## tcl(i2, "copy", i1, subsample=2) 

w <- tktoplevel() 
l_full <- ttklabel(w, image=iconName) ## or ttkbutton if you want 
l_twice <- ttklabel(w, image=largerIconName) 
sapply(list(l_full, l_twice), tkpack) 
+0

縮放和子樣本只允許調整整數因子( 2,3等,但不是1.5,1.25等)。 –

+0

要使用一個因子進行縮放,您必須縮放然後進行子採樣, G。使用3縮放,使用2縮放1.5結果(3/2)。這裏有一個可用的程序:http://wiki.tcl.tk/8448 –