Contact Us

Design Background

Curriculum Vitae






NativeJpg: A native Object Pascal Jpeg reader and writer
Added: 17May2007
Updated: 08jun2015
All versions
Languages: Object Pascal (Delphi 7 - XE, FreePascal)

This software component contains a fully object-oriented Pascal implementation that allows to read and write Jpeg files.

You can use this software to read and write Jpeg images from files or streams. It supports baseline and progressive Jpeg, support for metadata, as well as all conceivable lossless operations.


  • Read and write Jpeg images directly from stream or file, the library supports both baseline and progressive DCT coding. Algorithms for Huffman decoding, inverse DCT and color conversions are all very fast and optimized.

  • Support for virtually all colour spaces available in the Jpeg format, including YCbCr, RGB, Gray, YCbCrA, RGBA, CMYK, YCCK (Photoshop) and ITU CieLAB. The detection of the correct colour space is based on information available in the Jpeg format itself and in additional metadata, such as JFIF and Adobe APP14 markers. The colour format used in the Jpeg file can be auto-detected (default) or specified. The colour format for the output bitmap can be chosen to be RGB, RGBA, Gray or CMYK.

  • Many lossless operations are supported:
    • Rotate 90 degrees clockwise/counter-clockwise
    • Rotate 180 degrees
    • Transpose
    • Flip horizontal/vertical
    • Lossless cropping
    • Semi-lossless brightness and contrast adjustments (working directly on the DCT coefficients)
    • Huffman table optimization, while preserving all other info.
    Lossless operations do not destroy the metadata, all information in the file is preserved.

  • Load Jpeg files at full scale, half scale, quarter scale or one-eight scale. If just a thumbnail is required, this option will speed up loading and decoding times considerably.

  • Support for ICC profiles: extract, inject, load and save ICC colour profiles from the Jpeg file, and use these profiles with e.g. Little CMS to provide an accurate colour representation.

  • Metadata can be extracted and injected in Jpeg files easily. All special metadata tags are recognised, among which: JFIF, EXIF, IPTC, Adobe XMP, Jpeg Comment, Adobe APP14 information, ICC colour profiles.

  • A special feature includes optimization of Huffman tables in existing Jpeg images. Many modern photo cameras produce Jpegs with standard (non-optimal) tables. By just optimizing these, often a reduction in file size of about 10% can be achieved, without loosing any information.

  • NativeJpg works with image preview. You can simply include unit "NativeJpeg" in your project file and from that moment on, when using TOpenPictureDialog or TSavePictureDialog, a preview of the Jpeg images is available. A special TGraphic compatible class, called TsdJpegGraphic is available for this purpose. This also makes it easy to convert existing code to use NativeJpg.

  • NativeJpg supports tiled mode: you can load only a partial bitmap from the Jpeg file. This way you can avoid holding the complete bitmap in memory. When saving, the bitmap can be saved strip-by-strip. Example "TileDemo" shows how to use this feature. NativeJpg is thus very suitable if you work with huge bitmaps/jpeg files.

  • Debug output is available, which will provide insight in frames, subsampling, quantization tables, Huffman tables, encoding method and colour conversions that are used.

  • Full sources are available! This will make your projects that include Jpeg compiler independent and there is no longer a need for Delphi's Jpeg dcu unit to be glued to your project (which dates back to old code from 1994, based on a C implementation, and which lacks many of the more current features).


By downloading the software you must agree to the terms stated in the license file. Click on the appropriate link..

Full installer and uninstaller that will install the open-source version of the library. Please follow the guidelines in this forum topic in order to download the software.
Download Download this test application to verify that the library works with your particular jpeg images. The test application also show-cases some of the library features. The trial version contains the source code for this test application.



You can help SimDesign by purchasing this software at the cost of €29 through our website. When you purchase you will get nothing extra, but a good feeling you have bought the software for the developer.

Full Source
Single Developer
Price: € 29

 (includes paypal)

If you want to purchase then please use our secure order form at ShareIt.

As soon as your order is processed, you will get a link to the source, where you can immediately download it. It includes the files stated above, and the license allows unlimited use in your software.

If you want to use any other form of payment then please contact us.

   Page last changed: 08jun2015 © Copyright 2007 - 2015 SimDesign