Disclaimer: Newb to Pi with a JavaScript programing background.

I've been at it for two weeks now (researching and trying different things) to create an image slideshow on the Pi but using hardware acceleration. I've tried several libraries like node-openvg-canvas, pi-presents, and openvg... All of which has had their set backs.

node-openvg-canvas: No support for image transparency
openvg: No support for image scaling
pi-presents: Requires X to be running (added bottleneck)

All I need is:
1. Read image from directory
- Know when the image has loaded as images are added to directory at runtime
2. Transition from one image to the other
- Using scale (modifying width and height)
- Using translate (modifying x and y coordinates)
- Using alpha (modifying image opacity)
3. Run on a timer (checking directory for new images)
4. Run standalone (headless) on the GPU

I've written this in NodeJs, ActionScript (before I thought of using the Pi), and JavaScript with a PHP backend, but am willing to do this in other languages (python, ruby, c, c++ but am not familiar with any of these) if it means making use of the GPU on the Pi.

Any help is greatly appreciated.


I work with QT 5.0 for hardware acceleration ... because there is an optimized version for the raspberry Pi and i can use the transparency :


you can use the powerfull QTQuick for : translate, move on X,Y ...rotate etc etc

but ... the only problem: there is not a valid debian package for the moment, so you need to compile yourself QT 5.0 ... if you have only few days for your project this solution is not for you.

here the how to (compile,install,start for beginner) : http://qt-project.org/wiki/RaspberryPi_Beginners_guide

| improve this answer | |
  • Hello, This seems like a viable solution but decided, due to time constraints, to write this in Java running on an Android stick. Thank you for taking the time to respond! – Victor Diaz Oct 29 '13 at 10:29

You might want to look at fbi. This is a frame buffer viewer which runs at the command line (not in GUI).

You would need to write some code around this to achieve your other other objectives, as it basically just shows a list of images in a directory. I am not sure that it would detect added images.

I recently used this to make a super "photo frame" using my LCD monitor. I could post the script if this helps (I don't currently have ready access).

| improve this answer | |
  • Thx for the reply but I don't think fbi is what I'm looking for. I am trying to create a slideshow that looks like the one on this page wowslider.com/jquery-slider-bar-kenburns-demo.html but running on the Pi using accelerated hardware (GPU). As I mentioned, I've written this in NodeJS and works exactly as expected. Porting it over to the Pi is sluggish rendering it unusable -- because it's not running on the GPU. – Victor Diaz Oct 28 '13 at 0:51
  • Thank you for your response. I've decided to write an Android app and run this on an Android stick. I'm much more familiar with Java than I am with C/C++. – Victor Diaz Oct 29 '13 at 10:26

A solution which isn't quite there yet, but should be soon, is to use pi-presents (or another X client) with XWayland, Wayland, and Weston. Wayland is a clean-sheet display server protocol which is meant to be a more efficient and simpler alternative to X. Wayland provides hardware acceleration on the RPi, but does not offer native support for X. So the developers of Wayland are developing a custom X server, XWayland, that acts as a compatibility layer for legacy apps.

That's the good news. The bad news is that XWayland doesn't seem to be working properly (see my question here). It has come with the Raspian Wheezy image here since the 2013-09-10 release and can be installed on other releases by following these instructions.

To try it out for yourself, you can launch the Weston compositor on your machine with XWayland by doing:

$ weston-launch --modules=xwayland.so

Then open a terminal window in Weston and try to launch your X client. I've been getting an error, but when this gets resolved, I'll come back and edit this answer. Good luck!

| improve this answer | |
  • Thanks for the suggestions. I looked at XWayland and Pi-Presents. I've actually managed to get Pi-Presents working but it runs on X and the CPU is put to a lot of work. In any case, I decided to use an Android Stick and am writing my code in Java. – Victor Diaz Oct 29 '13 at 10:28
  • What framework or libraries are you planning to use? – einnocent Oct 29 '13 at 14:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.