Followup to my post yesterday… I’m started wholeheartedly on my snapshot tool, tentatively called “SWFShot”. It’s to be an AIR app that allows the user to create high resolution output images of loaded Flash content from the users hard drive. I hope to have a functional prototype in the next few days. Time is tight these days, but I will continue to post my progress… It’s currently in a tab navigator and skinned with a slightly modified template from Scalenine. Here are some screenshots of the panel… Keep in mind the final app will be a full screen window less app, with the content loading in the background of the panel. Should be interesting anyway. If you have thoughts or suggestions… fire away, I’m all ears. Read on for screenshots and the app’s “read me” content.. (more…)
I don’t know if I really have a good post here, just want to know why a very useful, very powerful class that is in the Flex framework isn’t in Flash’s AS3 classes. For those of you who are Flash users but not Flex developers, you may not really know about this class (good explanation here, at Doug McCune’s blog.), but it acts as a shortcut/helper class to assist you when creating snapshots out of display objects or anything that implements IBitmapDrawable. It’s pretty nice.
One thing that this class does that is especially cool is let you get around the 2880×2880 pixel limit imposed on all Flash display objects, including our good friends Bitmap and BitmapData. I have been working around trying to get higher res images out of some of my comps lately and I have all but given up using Flash for it. Even when you run Flash through as an AIR app, and use sneaky tricks like employing AS3Corelib (which is a great selection of classes, I might add) to encode a container sprite as JPG or PNG and output them as files to your local machine you are still limited to the 2880 ceiling. Now, I have seen explanations on why the limit exists, and yes, it makes sense for web apps, but if you are already creating a signed or even an unsigned app for that matter that has to run as administrator on a machine, I see no reason why the 2880 ceiling exists. With monitors gaining pixels with every generation, I’m sure this will change someday, but hey… I’m impatient. No really, I am… ask my wife.
So then I was doing something like this linked example to get around it. You can use the numbers on your keyboard to move the canvas around. “C” toggles mouse visibility, “1″ moves the sprite back to it’s origin point, “2″ slides everything left by a bunch of pixels (I have a MacBook Pro, so it’s slightly less than 1440), “3″ moves everything to the right by the same amount, “4″ moves everything down by 600, “5″ moves up by 600… you see where I am going with this? I move the canvas, take the screenshot and then stitch them together in Photoshop. This allows me to get a pretty big canvas. But, it’s a pain. To get a 10k x 10k image (something that will give you a nice 2-3 foot size print) takes dozens of images. So I thought back to some stuff I have been playing with in Flex (more on that in an upcoming post) and want to do the same here. But that requires the ImageSnapshot class which is missing from Flash CS3… hmm. How vexing.
So, now, I’m currently planning on making a Flex developed app that will be deployed as AIR that will take an input SWF, allow you to set your dimensions and DPI and then use the imageSnapshot class to get a big fat uncompressed image out of it. ImageSnapshot supports up to 8192×8192 images of around 256meg. Has anyone seen an app like this around already? I certainly don’t like duplicating efforts as free time is at a premium. Thoughts?
Related to this post… I’m getting curiouser and curiouser as to why AIR doesn’t have a PDF encoder (especially since blazePDF is dead and is only AS2). I know I could find some uses for it. Postscript charts and elements from Flex or Flash anyone? Sounds nice. Especially with all the great work being done over at Degrafa, and the rumblings of the mx:Graphics stuff to come in Flex 4.
MFG, Ebay, AOL, etc… they ain’t got nothing on this… Who hasn’t been faced with this dilemma? You want to get your LOLCats delivered to you discretely… quietly, without needing a big ole’ browser window alerting everyone you like a little “Oh Hai” or “I see what you did there” every once in a while… Well here is your chance. “LolCats on AIR” allows you to see the 10 most recently added LolCats to Icanhazcheeseburger.com and even offers a click through to the original post. Download it and let me know what you think.
I could stand to have some additional niceties added, etc… but hey, what do you expect for a one evening “Hey can I do this?” kind of experiment. I do wish that ICHC had a more robust API, rather than just a RSS feed, but what can you do? I played around with using the AS3 syndication lib, etc from Google code, but a simple RPC service was smaller and E4X worked just fine… all in all only 332kb!