JPEGator

About

JPEGator is a .NET Compact Framework class library that can be used to compresses and decompresses JPEG (.jpeg, .jpg) images from your C# or Visual Basic applications using .NET Compact Framework. It also allows creating thumbnail images from large JPEG files using a minimum amount of memory (depending only on image width). See below on why this library was written despite some support for JPEGs is available in .NETCF.

Try it now for free!

Download Now! Download JPEGator Standard Trial (< 500 KB) — an all-in-one package that comes with library files, examples, and documentation.

New! Starting with version 1.5.1197 the complete source code of the library is included. Registered before that? Let me know and I will send you the up-to-date PRO version (i.e. with the library source code).

Enter your email address to be occasionally notified about important updates of JPEGator like in the above paragraph (and nothing more, I hate spam):  

What are the developers saying

I needed to implement photographic capture into a legacy mobile application and the software seemed like a perfect fit. It allows the developer to load large pictures (3 megapixels + ) on the device which would not have been possible without a time consuming development of a low level interface library. The support I received was outstanding, even helping me to fix a problem with the device I was running the library on. The API was very easy to implement and I would recommend it highly.

— Phil Murray

Features

  • 3 compression and decompression methods (1 very fast and 2 slower but more accurate ones).
  • Possibility to monitor progress (for both compression and decompression; handy for very large files).
  • Works with streams too (not just with files; for example, you can decode images as they are downloaded from the network without creating temporary files).
  • Possibility to create thumbnails from large files with one line of code (3 quality/speed settings).
  • 5 input and output color spaces (with automatic conversions between them; Grayscale, RGB, YCrCb, CMYK, and YCCK are supported).
  • Storing instances of System.Drawing.Bitmap class as JPEG streams or files with one line of code.
  • Possibility to convert Bitmap into array and vice versa (works fast even on .NETCF 1, i.e. does not use GetPixel()/SetPixel()).
  • 5 commented examples.
  • MSDN-style reference manual.

 

Why this library is needed if .NET Compact Framework already can handle JPEG files?

The main reason is that .NETCF does not allow to save images as JPEG ones, i.e. it does not support JPEG encoding.

Another reason is that using default .NETCF support there is no way to handle large JPEG files without loading them into memory first and decompressing into a large bitmap (even if loading is done from a stream .NETCF still reads all bytes into memory before decompressing). This could be not acceptable even for not that large files on a mobile device. Also, bitmaps that are used to store decompressed images could have device-dependent format (like 16 bits per pixel) which affects image quality in case images need to be stored back to disk or network for later use.

With JPEGator you can process files sequentially (both encode and decode) using as little memory as possible (and the amount of memory usually does not depend on image height).

Requirements

The JPEGator library is designed to work on any ARM-based Smartphone/Pocket PC 2003 or Windows Mobile 5 device with either version 1.0 or 2.0 of the .NET Compact Framework (.NETCF) installed.

You will need to have both JPEGator.dll (~40Kb) and JPEGator.jpeg.dll (~80Kb) for your application to run.

Legal notes

Any company or individual who register the full version is entitled to unlimited use of JPEGator in their projects and mobile devices whilst they obey the license conditions.

This software partially based on the work of the Independent JPEG Group, so in using the JPEGator library you are also using the Independent JPEG Group's software too. According to the license agreement, you must state somewhere in your documentation that "this software is based in part on the work of the Independent JPEG Group".

The source code of the JPEGator library itself (included with the PRO version) can be changed as you wish, but it cannot be publicly redistributed. Private redistribution (such as from you to your customers along with the source code of the software you use JPEGator with) is allowed provided you retain the copyright notices and in case of any changes make it clear that these changes were made by you. For redistribution terms of the Independent JPEG Group's software sources, see readme.txt in libjpeg source code directory.

Have any questions or suggestions?

Feel free to use the contact page to drop me a note. I appreciate your feedback.

Need a freelance developer for your embedded project? Let me know too. If I booked myself, I still can refer you to great guys.