About Fluxify
Fluxify provides client-side resizing of JPG images for faster upload.
Image Quality
If you're going to shrink the size of a photo, you might as well use a method which
maximizes the visual quality of the result. We use one of the better methods, the bicubic
resampling method, which helps preserve detail between pixels and prevent aliasing.
JPEG Decoding and Encoding
Silverlight doesn't allow access any low-level image manipulation, so we assembled
code from several Java and C libraries into the FluxJpeg core library, which we are
in the process of releasing the source for.
We see the ability to resize photos in-browser as very useful. Traditionally, web
developers create separate uploader utilities or write ActiveX controls or browser
plugins to enable this. The opportunity to do this within the context of Silverlight
is advantageous to web developers looking to save on upload bandwidth and provide a
faster photo upload experience for their users.
EXIF Tags
Fluxify preserves all JPEG application metadata streams, including those
containing EXIF. We thought it would be a good idea to preserve image metadata
when we resize photos.
Let's say you were at an internet cafe and you wanted to send a handful of
pictures home. If you preserve the image metadata, the recipients of your photos
can see exactly what time of day you took each photo, along with any other
interesting information your camera records.
Limitations
Speed. You won't catch us in a bar bragging about the speed of our JPEG libraries.
The code is largely unoptimized and necessarily runs in a completley managed context.
It's a lot faster than it was when we first got it to compile, but it still has a
ways to go.
We don't recommend trying to send a lot of photos if the originals are larger than
about 9 megapixels. It will take fluxify 5-10 seconds or so to decode the JPEG, and
a few more seconds to encode. If you have just a handful to send, then waiting a
couple of minutes with the browser minimized is probably no big deal. But if you're
trying to send 50 12 megapixel photos, you can probably save time using a
full-fledged resize utility.
Another limitation: JPEG or bust. We currently don't support any other image formats.
Server
Fluxify does all the JPEG resize work on the client side, making the server side less
complex. We're using PHP scripts on the server to receive images and send emails.
Performance Tips
Note that you can click 'Send' before all of your photos are done resizing, and
Fluxify will start uploading the ones that are ready immediately, and automatically finish
the rest once they're ready. Additionally, once you've sent a batch of photos successfully,
you can edit your selection or change recipients, and the second 'Send' will go a lot faster.
But be careful not to close or refresh your browser, since then you will have to start over.
Questions?
Leave us a comment on our blog at
fluxcapacity.net, or email
us@fluxcapacity.net