595 lines
24 KiB
Diff
595 lines
24 KiB
Diff
diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
|
|
--- FreeImage/genfipsrclist.sh 2014-01-16 00:27:04.000000000 +0100
|
|
+++ FreeImage-new/genfipsrclist.sh 2014-01-16 00:49:42.334523250 +0100
|
|
@@ -1,6 +1,6 @@
|
|
#!/bin/sh
|
|
|
|
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
|
|
+DIRLIST=" Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
|
|
|
|
|
|
echo "VER_MAJOR = 3" > fipMakefile.srcs
|
|
diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
|
|
--- FreeImage/gensrclist.sh 2014-01-16 00:27:04.000000000 +0100
|
|
+++ FreeImage-new/gensrclist.sh 2014-01-16 00:49:42.335523267 +0100
|
|
@@ -1,6 +1,6 @@
|
|
#!/bin/sh
|
|
|
|
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
|
|
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
|
|
|
|
echo "VER_MAJOR = 3" > Makefile.srcs
|
|
echo "VER_MINOR = 16.0" >> Makefile.srcs
|
|
diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
|
|
--- FreeImage/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:49:42.335523267 +0100
|
|
@@ -21,7 +21,7 @@
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
-#include "../LibOpenJPEG/openjpeg.h"
|
|
+#include <openjpeg.h>
|
|
#include "J2KHelper.h"
|
|
|
|
// --------------------------------------------------------------------------
|
|
diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
|
|
--- FreeImage/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:49:42.336523283 +0100
|
|
@@ -22,16 +22,16 @@
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
-#include "../OpenEXR/IlmImf/ImfIO.h"
|
|
-#include "../OpenEXR/Iex/Iex.h"
|
|
-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
|
|
-#include "../OpenEXR/IlmImf/ImfInputFile.h"
|
|
-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
|
|
-#include "../OpenEXR/IlmImf/ImfChannelList.h"
|
|
-#include "../OpenEXR/IlmImf/ImfRgba.h"
|
|
-#include "../OpenEXR/IlmImf/ImfArray.h"
|
|
-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
|
|
-#include "../OpenEXR/Half/half.h"
|
|
+#include <OpenEXR/ImfIO.h>
|
|
+#include <OpenEXR/Iex.h>
|
|
+#include <OpenEXR/ImfOutputFile.h>
|
|
+#include <OpenEXR/ImfInputFile.h>
|
|
+#include <OpenEXR/ImfRgbaFile.h>
|
|
+#include <OpenEXR/ImfChannelList.h>
|
|
+#include <OpenEXR/ImfRgba.h>
|
|
+#include <OpenEXR/ImfArray.h>
|
|
+#include <OpenEXR/ImfPreviewImage.h>
|
|
+#include <OpenEXR/half.h>
|
|
|
|
|
|
// ==========================================================
|
|
diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
|
|
--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:49:42.336523283 +0100
|
|
@@ -21,7 +21,7 @@
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
-#include "../LibOpenJPEG/openjpeg.h"
|
|
+#include <openjpeg.h>
|
|
#include "J2KHelper.h"
|
|
|
|
// ==========================================================
|
|
diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
|
|
--- FreeImage/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:49:42.336523283 +0100
|
|
@@ -21,7 +21,7 @@
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
-#include "../LibOpenJPEG/openjpeg.h"
|
|
+#include <openjpeg.h>
|
|
#include "J2KHelper.h"
|
|
|
|
// ==========================================================
|
|
diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
|
|
--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:49:42.336523283 +0100
|
|
@@ -35,9 +35,9 @@ extern "C" {
|
|
#undef FAR
|
|
#include <setjmp.h>
|
|
|
|
-#include "../LibJPEG/jinclude.h"
|
|
-#include "../LibJPEG/jpeglib.h"
|
|
-#include "../LibJPEG/jerror.h"
|
|
+#include <stdio.h>
|
|
+#include <jpeglib.h>
|
|
+#include <jerror.h>
|
|
}
|
|
|
|
#include "FreeImage.h"
|
|
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
|
|
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:49:42.337523300 +0100
|
|
@@ -37,8 +37,8 @@
|
|
|
|
// ----------------------------------------------------------
|
|
|
|
-#include "../ZLib/zlib.h"
|
|
-#include "../LibPNG/png.h"
|
|
+#include <zlib.h>
|
|
+#include <png.h>
|
|
|
|
// ----------------------------------------------------------
|
|
|
|
@@ -106,7 +106,11 @@ ReadMetadata(png_structp png_ptr, png_in
|
|
tag = FreeImage_CreateTag();
|
|
if(!tag) return FALSE;
|
|
|
|
+#ifdef PNG_iTXt_SUPPORTED
|
|
DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length);
|
|
+#else
|
|
+ DWORD tag_length = text_ptr[i].text_length;
|
|
+#endif
|
|
|
|
FreeImage_SetTagLength(tag, tag_length);
|
|
FreeImage_SetTagCount(tag, tag_length);
|
|
@@ -153,10 +157,11 @@ WriteMetadata(png_structp png_ptr, png_i
|
|
text_metadata.key = (char*)FreeImage_GetTagKey(tag); // keyword, 1-79 character description of "text"
|
|
text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
|
|
text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
|
|
+#ifdef PNG_iTXt_SUPPORTED
|
|
text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
|
|
text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
|
|
text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
|
|
-
|
|
+#endif
|
|
// set the tag
|
|
png_set_text(png_ptr, info_ptr, &text_metadata, 1);
|
|
|
|
@@ -175,10 +180,11 @@ WriteMetadata(png_structp png_ptr, png_i
|
|
text_metadata.key = (char*)g_png_xmp_keyword; // keyword, 1-79 character description of "text"
|
|
text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
|
|
text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
|
|
+#ifdef PNG_iTXt_SUPPORTED
|
|
text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
|
|
text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
|
|
text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
|
|
-
|
|
+#endif
|
|
// set the tag
|
|
png_set_text(png_ptr, info_ptr, &text_metadata, 1);
|
|
bResult &= TRUE;
|
|
diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
|
|
--- FreeImage/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:55:13.692904877 +0100
|
|
@@ -19,7 +19,7 @@
|
|
// Use at your own risk!
|
|
// ==========================================================
|
|
|
|
-#include "../LibRawLite/libraw/libraw.h"
|
|
+#include <libraw/libraw.h>
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
|
|
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:49:42.337523300 +0100
|
|
@@ -37,9 +37,9 @@
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
-#include "../LibTIFF4/tiffiop.h"
|
|
+#include <tiffio.h>
|
|
#include "../Metadata/FreeImageTag.h"
|
|
-#include "../OpenEXR/Half/half.h"
|
|
+#include <half.h>
|
|
|
|
#include "FreeImageIO.h"
|
|
#include "PSDParser.h"
|
|
@@ -202,27 +202,9 @@ TIFFFdOpen(thandle_t handle, const char
|
|
_tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc,
|
|
_tiffSizeProc, _tiffMapProc, _tiffUnmapProc);
|
|
|
|
- // Warning: tif_fd is declared as 'int' currently (see libTIFF),
|
|
- // may result in incorrect file pointers inside libTIFF on
|
|
- // 64bit machines (sizeof(int) != sizeof(long)).
|
|
- // Needs to be fixed within libTIFF.
|
|
- if (tif) {
|
|
- tif->tif_fd = (long)handle;
|
|
- }
|
|
-
|
|
return tif;
|
|
}
|
|
|
|
-/**
|
|
-Open a TIFF file for reading or writing
|
|
-@param name
|
|
-@param mode
|
|
-*/
|
|
-TIFF*
|
|
-TIFFOpen(const char* name, const char* mode) {
|
|
- return 0;
|
|
-}
|
|
-
|
|
// ----------------------------------------------------------
|
|
// TIFF library FreeImage-specific routines.
|
|
// ----------------------------------------------------------
|
|
diff -rupN FreeImage/Source/FreeImage/PluginG3.cpp FreeImage-new/Source/FreeImage/PluginG3.cpp
|
|
--- FreeImage/Source/FreeImage/PluginG3.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginG3.cpp 2014-01-16 00:49:42.336523283 +0100
|
|
@@ -20,7 +20,7 @@
|
|
// Use at your own risk!
|
|
// ==========================================================
|
|
|
|
-#include "../LibTIFF4/tiffiop.h"
|
|
+#include <tiffiop.h>
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
|
|
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:49:42.337523300 +0100
|
|
@@ -37,10 +37,10 @@
|
|
|
|
#include "../Metadata/FreeImageTag.h"
|
|
|
|
-#include "../LibWebP/src/webp/decode.h"
|
|
-#include "../LibWebP/src/webp/encode.h"
|
|
-#include "../LibWebP/src/enc/vp8enci.h"
|
|
-#include "../LibWebP/src/webp/mux.h"
|
|
+#include <webp/decode.h>
|
|
+#include <webp/encode.h>
|
|
+//#include "../LibWebP/src/enc/vp8enci.h"
|
|
+#include <webp/mux.h>
|
|
|
|
// ==========================================================
|
|
// Plugin Interface
|
|
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
|
|
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:49:42.338523316 +0100
|
|
@@ -19,10 +19,9 @@
|
|
// Use at your own risk!
|
|
// ==========================================================
|
|
|
|
-#include "../ZLib/zlib.h"
|
|
+#include <zlib.h>
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
|
|
|
|
/**
|
|
Compresses a source buffer into a target buffer, using the ZLib library.
|
|
@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
|
|
return 0;
|
|
case Z_OK: {
|
|
// patch header, setup crc and length (stolen from mod_trace_output)
|
|
- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
|
|
+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
|
|
crc = crc32(crc, source, source_size);
|
|
memcpy(target + 4 + dest_len, &crc, 4);
|
|
memcpy(target + 8 + dest_len, &source_size, 4);
|
|
diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
|
|
--- FreeImage/Source/Metadata/XTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2014-01-16 00:49:42.338523316 +0100
|
|
@@ -29,13 +29,22 @@
|
|
#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
|
|
#endif
|
|
|
|
-#include "../LibTIFF4/tiffiop.h"
|
|
+#include <tiffiop.h>
|
|
|
|
#include "FreeImage.h"
|
|
#include "Utilities.h"
|
|
#include "FreeImageTag.h"
|
|
#include "FIRational.h"
|
|
|
|
+/*
|
|
+ * Caveat emperor this is a private libtiff functions which we need,
|
|
+ * there is no better solution I'm afraid.
|
|
+ */
|
|
+extern "C"
|
|
+{
|
|
+ int _TIFFDataSize(TIFFDataType type);
|
|
+}
|
|
+
|
|
// ----------------------------------------------------------
|
|
// Extended TIFF Directory GEO Tag Support
|
|
// ----------------------------------------------------------
|
|
@@ -205,7 +214,7 @@ tiff_write_geotiff_profile(TIFF *tif, FI
|
|
Read a single exif tag
|
|
*/
|
|
static BOOL
|
|
-tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, TIFFDirectory *td, uint32 tag) {
|
|
+tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, uint32 tag) {
|
|
const TIFFField *fip;
|
|
uint32 value_count;
|
|
int mem_alloc = 0;
|
|
@@ -226,8 +235,8 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
return TRUE;
|
|
}
|
|
|
|
- if(fip->field_passcount) { //<- "passcount" means "returns count"
|
|
- if (fip->field_readcount != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
|
|
+ if(TIFFFieldPassCount(fip)) { //<- "passcount" means "returns count"
|
|
+ if (TIFFFieldReadCount(fip) != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
|
|
|
|
// assume TIFF_VARIABLE (uses SHORT count)
|
|
uint16 value_count16;
|
|
@@ -244,35 +253,37 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
|
|
// determine count
|
|
|
|
- if (fip->field_readcount == TIFF_VARIABLE || fip->field_readcount == TIFF_VARIABLE2) {
|
|
+ if (TIFFFieldReadCount(fip) == TIFF_VARIABLE || TIFFFieldReadCount(fip) == TIFF_VARIABLE2) {
|
|
value_count = 1;
|
|
- } else if (fip->field_readcount == TIFF_SPP) {
|
|
- value_count = td->td_samplesperpixel;
|
|
+ } else if (TIFFFieldReadCount(fip) == TIFF_SPP) {
|
|
+ uint16 spp;
|
|
+ TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &spp);
|
|
+ value_count = spp;
|
|
} else {
|
|
- value_count = fip->field_readcount;
|
|
+ value_count = TIFFFieldReadCount(fip);
|
|
}
|
|
|
|
// access fields as pointers to data
|
|
// (### determining this is NOT robust... and hardly can be. It is implemented looking the _TIFFVGetField code)
|
|
|
|
- if(fip->field_tag == TIFFTAG_TRANSFERFUNCTION) {
|
|
+ if(TIFFFieldTag(fip) == TIFFTAG_TRANSFERFUNCTION) {
|
|
// reading this tag cause a bug probably located somewhere inside libtiff
|
|
return TRUE;
|
|
}
|
|
|
|
- if ((fip->field_type == TIFF_ASCII
|
|
- || fip->field_readcount == TIFF_VARIABLE
|
|
- || fip->field_readcount == TIFF_VARIABLE2
|
|
- || fip->field_readcount == TIFF_SPP
|
|
+ if ((TIFFFieldDataType(fip) == TIFF_ASCII
|
|
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE
|
|
+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE2
|
|
+ || TIFFFieldReadCount(fip) == TIFF_SPP
|
|
|| value_count > 1)
|
|
|
|
- && fip->field_tag != TIFFTAG_PAGENUMBER
|
|
- && fip->field_tag != TIFFTAG_HALFTONEHINTS
|
|
- && fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING
|
|
- && fip->field_tag != TIFFTAG_DOTRANGE
|
|
+ && TIFFFieldTag(fip) != TIFFTAG_PAGENUMBER
|
|
+ && TIFFFieldTag(fip) != TIFFTAG_HALFTONEHINTS
|
|
+ && TIFFFieldTag(fip) != TIFFTAG_YCBCRSUBSAMPLING
|
|
+ && TIFFFieldTag(fip) != TIFFTAG_DOTRANGE
|
|
|
|
- && fip->field_tag != TIFFTAG_BITSPERSAMPLE //<- these two are tricky -
|
|
- && fip->field_tag != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
|
|
+ && TIFFFieldTag(fip) != TIFFTAG_BITSPERSAMPLE //<- these two are tricky:
|
|
+ && TIFFFieldTag(fip) != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
|
|
) {
|
|
if(TIFFGetField(tif, tag, &raw_data) != 1) {
|
|
return TRUE;
|
|
@@ -281,7 +292,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
|
|
// access fields as values
|
|
|
|
- const int value_size = _TIFFDataSize(fip->field_type);
|
|
+ const int value_size = _TIFFDataSize((TIFFFieldDataType(fip)));
|
|
raw_data = _TIFFmalloc(value_size * value_count);
|
|
mem_alloc = 1;
|
|
int ok = FALSE;
|
|
@@ -302,7 +313,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
break;
|
|
*/
|
|
default:
|
|
- FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", fip->field_name);
|
|
+ FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", TIFFFieldName(fip));
|
|
break;
|
|
}
|
|
if(ok != 1) {
|
|
@@ -325,59 +336,59 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
FreeImage_SetTagID(fitag, (WORD)tag);
|
|
FreeImage_SetTagKey(fitag, key);
|
|
|
|
- switch(fip->field_type) {
|
|
+ switch(TIFFFieldDataType(fip)) {
|
|
case TIFF_BYTE:
|
|
FreeImage_SetTagType(fitag, FIDT_BYTE);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_UNDEFINED:
|
|
FreeImage_SetTagType(fitag, FIDT_UNDEFINED);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_SBYTE:
|
|
FreeImage_SetTagType(fitag, FIDT_SBYTE);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_SHORT:
|
|
FreeImage_SetTagType(fitag, FIDT_SHORT);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_SSHORT:
|
|
FreeImage_SetTagType(fitag, FIDT_SSHORT);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_LONG:
|
|
FreeImage_SetTagType(fitag, FIDT_LONG);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_IFD:
|
|
FreeImage_SetTagType(fitag, FIDT_IFD);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_SLONG:
|
|
FreeImage_SetTagType(fitag, FIDT_SLONG);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
@@ -392,7 +403,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
rvalue[2*i+1] = rational.getDenominator();
|
|
}
|
|
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, rvalue);
|
|
free(rvalue);
|
|
@@ -409,7 +420,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
rvalue[2*i+1] = rational.getDenominator();
|
|
}
|
|
FreeImage_SetTagType(fitag, FIDT_RATIONAL);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, rvalue);
|
|
free(rvalue);
|
|
@@ -418,35 +429,35 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
|
|
|
|
case TIFF_FLOAT:
|
|
FreeImage_SetTagType(fitag, FIDT_FLOAT);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_DOUBLE:
|
|
FreeImage_SetTagType(fitag, FIDT_DOUBLE);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_LONG8: // BigTIFF 64-bit unsigned integer
|
|
FreeImage_SetTagType(fitag, FIDT_LONG8);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_IFD8: // BigTIFF 64-bit unsigned integer (offset)
|
|
FreeImage_SetTagType(fitag, FIDT_IFD8);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
|
|
case TIFF_SLONG8: // BigTIFF 64-bit signed integer
|
|
FreeImage_SetTagType(fitag, FIDT_SLONG8);
|
|
- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
|
|
+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
|
|
FreeImage_SetTagCount(fitag, value_count);
|
|
FreeImage_SetTagValue(fitag, raw_data);
|
|
break;
|
|
@@ -489,16 +500,16 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
|
|
|
|
TagLib& tagLib = TagLib::instance();
|
|
|
|
- TIFFDirectory *td = &tif->tif_dir;
|
|
-
|
|
count = (short) TIFFGetTagListCount(tif);
|
|
for(i = 0; i < count; i++) {
|
|
uint32 tag = TIFFGetTagListEntry(tif, i);
|
|
// read the tag
|
|
- if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, td, tag))
|
|
+ if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, tag))
|
|
return FALSE;
|
|
}
|
|
|
|
+/* Disabled for Fedora as it is using internal library structures. */
|
|
+#if 0
|
|
// we want to know values of standard tags too!!
|
|
|
|
// loop over all Core Directory Tags
|
|
@@ -533,13 +544,14 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
|
|
|
|
// process *all* other tags (some will be ignored)
|
|
|
|
- tiff_read_exif_tag(tif, md_model, dib, tagLib, td, fld->field_tag);
|
|
+ tiff_read_exif_tag(tif, md_model, dib, tagLib, fld->field_tag);
|
|
|
|
|
|
lastTag = fld->field_tag;
|
|
}
|
|
|
|
}
|
|
+#endif
|
|
|
|
return TRUE;
|
|
|
|
@@ -611,6 +623,10 @@ Write all known exif tags
|
|
*/
|
|
BOOL
|
|
tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) {
|
|
+/* Disabled for Fedora as it is using internal library structures. Siberia
|
|
+ * winter on upstream developer! :-) */
|
|
+ return FALSE;
|
|
+#if 0
|
|
char defaultKey[16];
|
|
|
|
// only EXIF_MAIN so far
|
|
@@ -662,4 +678,5 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
|
|
}
|
|
|
|
return TRUE;
|
|
+#endif
|
|
}
|
|
diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
|
|
--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:49:42.338523316 +0100
|
|
@@ -26,10 +26,10 @@
|
|
#undef FAR
|
|
#include <setjmp.h>
|
|
|
|
-#include "../LibJPEG/jinclude.h"
|
|
-#include "../LibJPEG/jpeglib.h"
|
|
-#include "../LibJPEG/jerror.h"
|
|
-#include "../LibJPEG/transupp.h"
|
|
+#include <jinclude.h>
|
|
+#include <jpeglib.h>
|
|
+#include <jerror.h>
|
|
+#include <transupp.h>
|
|
}
|
|
|
|
#include "FreeImage.h"
|
|
diff -rupN FreeImage/Source/LibJXR/image/sys/strcodec.c FreeImage-new/Source/LibJXR/image/sys/strcodec.c
|
|
--- FreeImage/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:27:03.000000000 +0100
|
|
+++ FreeImage-new/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:49:42.338523316 +0100
|
|
@@ -664,7 +664,7 @@
|
|
//================================================================
|
|
// Memory access functions
|
|
//================================================================
|
|
-#if (defined(WIN32) && !defined(UNDER_CE) && !defined(__MINGW32__)) || (defined(UNDER_CE) && defined(_ARM_))
|
|
+#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_))
|
|
// WinCE ARM and Desktop x86
|
|
#else
|
|
// other platform
|