Focus Pockus по-русски
 
Back to the home page
 
Copyright (c) 2008 Alexei Kireev, fh.pwd@spamgourmet.com

Download
--------------------
focuspockus_ppc_1.0.1.zip Pocket PC executable
focuspockus_desktop_1.0.1.zip Desktop PC executable
focuspockus_src_1.0.1.zip Source code
 
What is it?
--------------------
Click to see Pocket PC screenshot Focus Pockus is an experimental Canon CR2 raw (unprocessed photo) viewer for Pocket PC (works on desktop too). It can be used to preview raw files from your flash card on a Pocket PC.

Files are read rather slowly, this is because Focus Pockus has to uncompress Canon raw format, which uses lossless jpeg for compression. Unfortunately, I don't see how it would be possible to read and uncompress only the selected part of the image data with this data compression scheme, so the application has to read / uncompress ALL the data in one go.
The only way to speed things up I can think of now is to rewrite Focus Pockus in a language that compiles to native machine code, like C/C++. Whether it is worth my time remains to be seen (basically, if many people ask me to do something about performance, I'll consider a rewrite; but I wouldn't expect miracles anyway).
 
Click to see desktop PC screenshot Focus Pockus has been tested with files from Canon EOS 20D, 30D, 350D, 400D and 5D. Please note that to read files with higher resolution (like 400D's 10 MP files or 5D's 12 MP files) you may need more free RAM.
Focus Pockus doesn't read Canon EOS 40D files and CRW files (or any other raw formats for that matter).

Focus Pockus comes under MIT License (LICENSE.txt), please read it before using Focus Pockus. By using Focus Pockus you agree with this license. Pay attention to the fact that the author of Focus Pockus (Alexei Kireev) bears no liability, for example, for data loss. Therefore, always backup your images (even though Focus Pockus opens raw files in read-only mode).


What's new
--------------------
1.0.1 - Fixed handling of CR2 files from Canon 350D with newer firmware (e.g., v1.0.3).
This also helped to enable Focus Pockus to read 5D files (yay!).
Fixed another bug that caused Focus Pockus to crash when trying to view parts of the image near the margin.
 
Credits
--------------------
I would like to express my gratitude to David Coffin for his dcraw, wich is a great source of information on raw formats, even if hard to read. Also, I would like to thank Fabrizio Giudici for his jrawio - it is MUCH easier to understand even though I'm not much of a Java guy.

Thank you, Urix, for your help with debugging!


Requirements
--------------------
Windows Mobile 5 (not tested with WM 2003 and WM 6, but I hope it would work), Microsoft .NET Compact Framework 1.0 (if you have WM 5 installed, you most probably have .NET CF 1.0, which was the reason to use the first version)

On the desktop you need Windows 2000 or higher and Microsoft .NET Framework 1.1

Focus Pockus also runs happily with Mono 1.2.5.2 (or later, presumably), the only issue is that of the decimal point format. Mono thinks that if your regional settings are set to one of European presets, you use decimal comma instead of the decimal point even if you've customized your settings to use the decimal point; in any event the worst you get is a one-time message box, each time you switch from .NET to Mono.


How to use
--------------------
Launch, use navigation strip in the upper part of the window to browse, tap/click on CR2 files. Use "Cfg" button to change settings.


Source Code
--------------------
The source is available freely under MIT License (LICENSE.txt). Please make sure you understand it well before messing with anything. Though not required, I would love to hear from you at fh.pwd@spamgourmet.com if you use it.

N.B.: solution / project files are for SharpDevelop, not Visual Studio (although I trust they can be easily converted if you so wish)

Another thing is that if you wish to compile for Pocket PC, undefine "DESKTOP" in project properties >> Compiling, it is defined by default and causes desktop version to be built. Also, don't forget to change target framework from .NET Framework 1.1 to Compact Framework 1.0

Also, another important step when compiling for Pocket PC is to mark Focus Pockus executable as High-DPI aware. If you don't do that, Focus Pockus won't be able to benefit from high resolution screens on VGA devices.

Here's how: download and install Developer Resources for Windows Mobile 2003 Second Edition. Then find in the installation directory res2exe.exe and run the following command: res2exe -c -r hidpi.res FocusPockus.exe (make sure both res2exe.exe and FocusPockus.exe are available from your current folder)

This method is from Developing Orientation and dpi Aware Applications for the .NET Compact Framework article.


Links (in no particular order)
-------------------
http://www.microsoft.com Microsoft web site - home of Windows, Windows Mobile, .NET Framework, .NET Compact Framework
http://www.mono-project.com Mono project
http://cybercom.net/~dcoffin/dcraw/ dcraw (by Dave Coffin)
http://jrawio.tidalwave.it jrawio (by Fabrizio Giudici)
http://www.icsharpcode.net/OpenSource/SD/ SharpDevelop
http://raw.fotosite.pl/ Great library of raw files