Warning, /graphics/digikam/core/libs/pgfutils/libpgf/README is written in an unsupported language. File is not indexed.
0001 The Progressive Graphics File 0002 ============================= 0003 0004 For more information see http://www.libpgf.org. There you can find some 0005 documents concerning this progressive graphic file codec. 0006 0007 This project is hosted on the Sourceforge.net platform. For support and 0008 questions, please use the installed mailing list and forums there. 0009 The Sourceforge URL of our project is: http://sourceforge.net/projects/libpgf 0010 0011 ============================= 0012 Release Notes 0013 0014 Version 7.21.7, (Thu, 18 Feb 2021) 0015 ------------------------------------ 0016 0017 1. The new version is a minor bug fix of versions 7.15.25 to 7.21.2. 0018 0019 2. This bug fix for ROI decoding only. This bug fix is necessary if several 0020 Read() and ResetStreamPos() operations are called with the same PGFimage 0021 object after a single Open() call. 0022 0023 0024 Version 7.21.2, (Sun, 17 Jan 2021) 0025 ------------------------------------ 0026 0027 1. The new version is a documentation and build tool update of version 7.19.3. 0028 0029 0030 Version 7.19.3, (Tue, 15 Jan 2019) 0031 ------------------------------------ 0032 0033 1. The new version is a minor update of version 7.15.25. 0034 0035 2. This version fixes a compilation bug seen when ROI support is disabled. 0036 0037 0038 Version 7.15.32, (Thu, 6 Aug 2015) 0039 ------------------------------------ 0040 0041 1. The new version is a minor update of version 7.15.25. 0042 0043 2. This version improves the reuse of CPGFImage objects for several decoding operations. 0044 It clarifies the usage of CPGFImage::Close() and CPGFImage::Destroy() by deletion of 0045 Close(). Several reading operations can be performed in the following way: 0046 Open(), Read(), GetBitmap(), ResetStreamPos(), Read(), GetBitmap(), ResetStreamPos(), ... 0047 Calling Destroy() frees all allocated ressources and reinitializes the object to the 0048 same state as the constructor does. This allows the reuse of the CPGFImage object for 0049 encoding and decoding: 0050 SetHeader(), ImportBitmap(), Write(), ResetStreamPos(), Destroy(), Open(), Read(), GetBitmap() 0051 0052 3. Caching or skipping of user data (meta data) while opening a PGF image can be controlled 0053 by a new UserdataPolicy in ConfigureDecoder(). 0054 0055 0056 Version 7.15.25, (Sat, 20 June 2015) 0057 ------------------------------------ 0058 0059 1. This new version is a replacement of version 6.14.12. 0060 In case you use the ROI decoding, we strongly encourage using version 6.15.25 instead of an older version. 0061 0062 2. This version fixes some decoder bugs only seen in ROI decoding. 0063 ROI decoding is now also supported for Bitmap and RGB12 image modes. 0064 0065 3. This version introduces a new and more efficient data format for binary images (bitmaps). 0066 The new format allows ROI decoding. 0067 The decoder supports both the old and the new format, but ROI decoding works only with the new format. 0068 0069 4. The two reserverd bytes in PGFHeader are now used for a more detailled PGF version number. 0070 0071 5. The Visual Studio project files are in the VS12 format. 0072 0073 0074 Version 6.14.12, (Wed, 9 April 2014) 0075 ------------------------------------ 0076 0077 1. The new version is a minor update of version 6.12.24. 0078 0079 2. It mainly contains some fixes of memory leaks in the OpenMP part and some improvements suggested by cppcheck and Coverity. 0080 0081 3. The Visual Studio project files are in the VS11 format. 0082 0083 0084 Version 6.12.24, (Thu, 14 June 2012) 0085 ------------------------------------ 0086 0087 1. The new version is a replacement of version 6.11.42. 0088 In case you use the ROI encoding scheme, we strongly encourage using version 6.12.24 instead of version 6.11.42. 0089 0090 2. This version fixes some decoder bugs, sometimes seen in ROI decoding. 0091 0092 3. This version allows a simpler user-data handling, especially for uncached metadata. The following two methods 0093 in the class PGFimage are designed for this purpose: 0094 0095 GetUserDataPos() returns in an opened PGF image the stream position of the user data area. 0096 0097 WriteImage() encodes and writes the image at the current stream position. This method is called after 0098 WriteHeader(). In case you want to write uncached metadata into the stream, then do that after WriteHeader() 0099 and just before WriteImage(). If you are not interested in writing uncached metadata, then you usually use 0100 Write() instead of WriteImage(). WriteHeader() and WriteImage() are called inside of Write(). 0101 0102 0103 Version 6.11.42, (Sun, 23 Oct 2011) 0104 ----------------------------------- 0105 0106 1. The new version is a replacement of version 6.11.24. 0107 We strongly encourage using version 6.11.42 instead of version 6.11.24. 0108 0109 2. This version fixes some decoder bugs, only seen in lossless compression of 0110 large images. 0111 0112 3. The rarely used, but sometimes misused, background information (3 Bytes) 0113 in the PGFHeader has been replaced by 0114 0115 UINT8 usedBitsPerChannel; // number of used bits per channel 0116 // in 16- and 32-bit per channel modes 0117 UINT8 reserved1, reserved2; // not used 0118 0119 The value usedBitsPerChannel is helpful in case you have more than 8 (16) but 0120 less than 16 (32) significant bits per channel, stored in the most 0121 significant bits of a pixel. For example, you have a grayscale image with 14 0122 bit significant data per pixel stored in the ImageModeGray16 pixel format. In 0123 case you have left shifted the 14 bits to be the most significant 14 bits, 0124 then you should set usedBitsPerChannel=14. This will increase the compression 0125 ratio without any drawbacks, because the 14 bits are internally right shifted. 0126 On the other side, if the 14 bits are the least significant bits in 0127 your 16 bit pixel format, then you shouldn't set usedBitsPerChannel. It will 0128 be automatically set to 16, but this is no problem, since the not used most 0129 significant bits per pixel are never encoded at all. So, in both cases the same 0130 compression ratio will result.