Tuesday, May 13, 2008

Subway buttons

I got my subway buttons from Spacing the other day:



These are my "home stations" since moving back to Toronto in 1997.



Read the full article

Thursday, May 08, 2008

Digital Comic Viewer part 2

I'd planned to pay for the feature I wanted in SWF To Image, but it turned out to already exist! There's a method called LoadFromBinaryImage that is intended to process FlashMovie objects created by SWF Scout (a commercial SWF generation library), but I can throw my byte array at it like this: (hIssueData is a hashmap, and imageX_lfile is the byte array for the modified lettering file of a specific page)

object objSwf = hIssueData["image" + x.ToString() + "_lfile"];
renderFlash.LoadFromBinaryImage(ref objSwf, "http://www.google.com");


For some reason LoadFromBinaryImage requires a non-empty string as second parameter called BaseURL... I guess it gets used if there are external resources called from the SWF. Anyway, I can then take renderFlash.BinaryImage and pass it through the ImageMagick routines to end up with the final combined image.

The end result is that I've now got a working viewer that writes no assets to disk. However I've still got to do the full-screen mode, keyboard navigation, and a better way of selecting comics before I do a release. Due to Grand Theft Auto IV that could mean at least a week. :)



Read the full article

Friday, May 02, 2008

Digital Comic Viewer part 1

I did some preliminary work on Digital Comic Viewer today. Instead of writing files to disk, I'm able to load them as byte arrays that can be displayed on-screen:



So far this only works with pages that don't have any Flash text layered on them. As I changed things around I ran into a limitation of the excellent SWFToImage library... Although the final image output can be a byte array instead of a file, the SWF input cannot. That's not too surprising, as only crazy people would even have a modified byte array of their SWF to begin with! I sent an email to the SWFToImage author though, so hopefully we can work something out.

Once the basic features are re-implemented without any writes to disk I'll release a preliminary version for people to play with. After that will come a proper full-screen viewing mode, and finally a good user interface.



Read the full article