Tuesday, January 5, 2010

One feature a day Photobomb

Last Sunday evening I explored goocanvas enough to know that I wanted to create an app with it. At the same time, my vacation is over, and I am already a bit over committed with coding projects. But I reeaaallly want to work on this. So I decided to just add on feature a day, and see how far I get. See if I can just limit myself to just a little bit each day.

In the meantime, my Photobomb prototype code got a bit out of control and disorganized so I threw it all out and started from scratch. Since I know the API better, I was able to take a much more organized approach. So ...

Day 1 I added:
  • Ability to add images from disk to the surface (thanks Quidgets for making it a one-liner to get the image path from the user)
  • Resize the images
  • Drag around the images (kind of was buggy though)
  • Remove an image
Ok, so that's more than 1 feature, but it was still a bite sized amount of work, and was necessary to get to the juicier features.

Day 2 (tonight) I added:
  • SVG images for the button labels (thank you Inkscape)
  • Ability to rotate images
  • Ability to send an image to the bottom or bring it to the top of the stack
  • Fixed the buggy drag code (had to use convert_to_item_space or the whacky things happened with rotated images).
  • [edit]I cheated a little and added another feature, I sniped some of Segphault's code to implement saving as a png[/edit]
The attached screen shot show three images added, each resized and rotated to look cool.

Next up? I'll probably respond to the feature request to add thought balloons and stuff. But there is also inking.

If you want to join in the fun, I pushed the code to a branch.


  1. Hello.
    Very nice start. I'm also considering to use Goocanvas for my GScreendump app (someday...).

    Take a look at GScreendump.

    It uses ImageMagick to add amazing effects to photos/images. GScreendump has also undo/undo all function.

  2. The only comment id have to make is the icons dont look very gnome like which could be improved. Other than that its awesome and the development is going a great pace which is cool.

  3. Nice article, thanks for the information. It's very complete information. I will bookmark for next reference
    jaring futsal | jaring golf | jaring pengaman proyek |
    jaring pengaman bangunan | jaring pengaman gedung