Thursday, June 26, 2008
The Foxit PDF Preview Handler is a piece of software written by Tim Heuer with sponsorship from Foxit Software (providing the license so that we all can enjoy). Special thanks to Ryan Gregg for help with the Windows XP version. These preview handlers are a part of Microsoft Windows Vista in the operating system as well as in Outlook 2007.
Tim Heuer wrote:
For example, in Outlook 2007, if you receive an attachment that is a PDF you can click it and get a preview of that document right within Outlook without having to open the document in another program. It is an extremely helpful feature of Outlook that I love and why I wrote this handler for PDFs. Microsoft did not provide a default one for PDFs as a part of Outlook or Vista. If you install Adobe Acrobat 8.1+ you will get one as well. However, I am not a fan of Acrobat Reader as I think it is a slow application for what I use PDFs for – reading only. For this I prefer Foxit Reader as it is super light-weight and fast.
Practical advice for developers
This section is aimed mainly at software developers, but regular users should read it too, because it shows how simple it is to deal with these issues from a programming point of view.
It might sound a bit self-righteous to write an article telling Photoshop's or 3dsmax's programmers how to do their job but... well, someone has to, because it's pretty obvious they aren't going to get it right by themselves (both are up to version 9, and are still lacking basic alpha channel conversion abilities).
First, here are the formulas to convert between matted and non-matted alpha. They can deal with any matte colour and are easy to implement for any colour depth and in any language. The variables used in the formulas are:
Cm = Component (matted)
Cu = Component (unmatted)
Cb = Component (background / matte colour)
a = Alpha
amax = Maximum possible alpha value (ex., 1.0)
All values are assumed to vary between 0.0 and 1.0 (for 8-bit files this would be 0-255 and for 16-bit files it would be 0-65535; remember to divide by the scale if you use anything other than 0.0-1.0).
To convert from unmatted alpha to matted alpha:
Cm = ( Cu ∙ a ) + [ Cb ∙ ( amax - a ) ]
To convert from matted alpha to straight (unmatted) alpha:
If a = 0, then Cu = Cm
Else, Cu = [ Cm - Cb ∙ ( amax - a ) ] / a
The formulas should be applied once to each colour component (ex.: R, G and B) of each pixel.
Those formulas are enough to add support for alpha channel conversion (with any matte colour) to any application. The software can then either cache a "working format" version of the image (generally meaning a straight-alpha version) or it can perform the conversion whenever it needs to read a pixel's colour channel values. There is really no excuse for not including this basic ability in a professional-level application.
The second issue is how to determine the kind of alpha channel used by a file that the user has just imported. One solution is to simply ask the user, but that's a pretty poor solution; users have more important things to worry about. So let's look at how software can determine the type of alpha channel and, if it turns out to be a matted alpha channel, how it can determine the background colour.
First we look for a pixel that is 100% transparent (0% opaque). If one exists, store its RGB values. Look for another pixel that is 100% transparent. Compare its RGB values with the ones previously stored. Repeat until the end of the file. If all pixels with 0% opacity have the same RGB values, it's almost guaranteed that that colour is the one used for the matte (if indeed there is a matte). If the colour varies, there's a good chance that we're looking at a straight-alpha file, or that the file uses some sort of really weird encoding (like the background bitmap example given above).
Now, even if all 100% transparent pixels have exactly the same colour, the file might still use "straight" alpha, so it's time to take the "background" RGB values we found above, plug them into the matted / unmatted conversion formulas and see if they make sense.
No pixel can have less of the matte colour in its RGB values than its alpha value would allow. For example, a colour channel in a pixel that is only 10% opaque cannot deviate more than 10% from the same channel of the matte colour.
If this condition isn't met by every pixel in the file, then there is no matte. If it is met by every pixel in the file, there's a very good chance that there is a matte, using the background colour we determined earlier.
There are other ways to make these decisions, some of which are simpler, faster, and will also get it right most of the time (for example, the program might analyse only a few pixels, rather than every pixel in the image).
Software should perform these tests when a file is first imported, and use the results to pre-fill the source format (or "footage interpretation") settings. This means that, in 99% of cases, the user will only need to click "ok".
If the tests are inconclusive (ex., because there are no transparent pixels in the file), then the software should ask the user to make the choice.
In any case, the user should always be given the option to toggle the type of alpha channel (between straight and matted), to pick the matte colour (manually or from the image) or to have the software "guess" the alpha channel type and matte colour again. These options should be available at any moment; not just when the file is first imported. If the software uses working proxies, a change of source format settings would cause the file to be re-imported.
(end of quote from DVD-HQ.info © Rui del-Negro 2008)
Friday, June 20, 2008
previously Alternativa Game, launched their Alternativa Platform milestone 1 and really one demo would have been enough but there are some great demos there that literally put them what appears a couple laps up on the 3d FPS style engine in Flash.
The engine is highly optimized and smooth, heavy on the processor, but using the ‘t’ key you can see some nice revealing triangle rendering. Also, playing with the field of view adds for some nice game effects. (try jumping on the fans in the half-life like room in the first demo)
Adobe already has a version of Flash for the iPhone running on emulation software, and would, fingers crossed, be able to bring that over to the phone itself if Apple allowed it. That’s what Adobe said yesterday at its Q2 conference call. Or:
We have a version that’s working on the emulation. This is still on the computer and you know, we have to continue to move it from a test environment onto the device and continue to make it work. So we are pleased with the internal progress that we’ve made to date.
But will Apple allow Flash for the iPhone? Steve Jobs has claimed in the past that the mobile version of Flash—presumably what Adobe would be porting over to the iPhone—isn’t powerful enough for use on the nimble and elegant iPhone. Integration with Safari?
This leaves Adobe, if it wants a piece of that sweet, sweet iPhone market, with a few options. It could simply release a stand-alone Flash application on the upcoming App Store, but that would be cumbersome to say the least. One of the big reason why Flash is so popular is because it “just works” in a browser. No having to download Hulu videos to your hard drive in order to view them, for example.
Adobe could also, somehow, convince Apple to let it release a plugin for Safari. That’d be the most seamless for consumers.
Adobe has always take advantage of QuicktTime API and now QTKit so there is really no reason why Flash won't be fast on the iPhone
Since its inception, the Flash authoring tool has stored documents in a binary source-file called .fla. Historically, interchanging source with the Flash authoring tool has been virtually impossible for third-party software because the specification for .fla has never been public. But things are changing in the next version of Flash. Flash CS4 will be able to export *and* import a new source format called XFL. An XFL file is a .zip file that contains the source material for a Flash document. Within the .zip file resides an XML file describing the structure of the document and a folder with the document's assets (graphics, sounds, etc). The exact details of the XFL format are not yet available, but Richard assures me that Adobe intends to document them publicly, allowing third-party tools to import and export XFL.
So in theory, you might one day edit the images of an XFL file directly in Photoshop without disturbing the timeline information also contained in that file. Or you might be able to import a page from a word processing document into a Flash presentation.
But perhaps even more exciting is the potential for the smaller, grass-roots community. Being XML-based, the new XFL format should be fairly easy to understand and generate. That means any small tool company, web agency, or even independent developer will be able to create a purpose-built authoring tool that can output XFL. Of course, the XFL file would then need to be opened in the Flash authoring tool for final .swf export. But a .jsfl script should be able to ease the workflow between an XFL-generating tool and the Flash-authoring .swf-compilation process.
The natural next step in the evolution of XFL authoring would be to take the Flash authoring tool out of the equation altogether. If Adobe were to offer a command-line XFL-to-SWF compiler along with XFL, nearly any decent programmer would be able to create a .swf-authoring tool, even in ActionScript. The Flash developer community itself would finally be able to create its own custom Flash-authoring tools. I wonder who would be the first to nostalgically make Flash 4 for AIR in ActionScript?
XFL might not have the instant appeal of inverse kinematics, but it could eventually prove to be the feature in Flash CS4 that has the greatest impact on the Flash industry. After all, its name has an "X' in it.
FLASH AS3 AND VIDEO for WebAnalytics
You may be interested to read more about interactive video in Flash CS4 as well
Thursday, June 05, 2008
If I try to debug flash while intellisense process is running in the background, it crashes Visual Studio 2005....which force me to wait for intellisense to be complete when i launch my project or anytime intellisense has decided to start processing things again...
Not sure what is the advantage of intellisense... but for those who want to disable it :
In VS 2005 it can be done by renaming or deleting the following file:
You can also control IntelliSense through macros, allowing you to enable/disable IntelliSense without restarting VS or renaming files. See this blog article for the macro details: http://blogs.msdn.com/vcblog/archive/2007/11/19/controlling-intellisense-through-macros.aspx