5
2007
Tiny browser thumbnail client, anyone?
While testing out my little browser thumbnail service, I thought I’d throw together a little thumbnail Swing client to tinker with (I was super inspired by Geertjan’s work on Soap clients). You can type in a URL, invoke the Thumbnail service over XMLRPC, then have a look at the image returned:
If you’re keen for a play, download the latest XML RPC jar (I’m using v0.3), and copy it to your ~/.groovy/lib directory (or %USERPROFILE%.groovylib on Windows). Then fire up groovyConsole and cut and paste….
import groovy.net.xmlrpc.*
def server = new XMLRPCServerProxy("http://www.groovyblogs.org:7999")
def swing=new groovy.swing.SwingBuilder()
def frame=swing.frame(title: 'Thumbnail Service',
preferredSize: [700, 500],
background: java.awt.Color.lightGray) {
vbox {
panel {
label 'Enter URL:'
textField(id: 'url', columns: 40, "http://www.google.com.au/")
button(text: "Get Thumb", actionPerformed: { event ->
println "Retrieving URL: $swing.url.text"
def thumbs = server.getThumbnail(swing.url.text)
def large = new javax.swing.ImageIcon(thumbs[0])
def small = new javax.swing.ImageIcon(thumbs[1])
swing.smallicon.icon = small
swing.bigicon.icon = large
})
}
panel {
label(id: 'smallicon')
label(id:'bigicon')
}
}
}
frame.pack()
frame.show()
The service only exposes one method, getThumbnail(url) which returns an array of byte[]. The first element is the large thumbnail bytes, the second is the small one. The format returned is jpeg. Be patient, it can take a few seconds to return…
Once I have a public download of the thumbnail service code, I’ll cut the public API, but it’s a fun experiment of what you can do with a few lines of groovy plus some XMLRPC goodness!
1 Comment + Add Comment
Leave a comment
Glen Smith
Archives
- April 2012
- March 2012
- January 2012
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- April 2011
- March 2011
- January 2011
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- May 2004
- March 2004
- February 2004
- January 2004
- December 2003
- November 2003
- October 2003
- September 2003

An article by Glen





Very cool Glen! Looking forward to seeing the code for this.