346 lines
19 KiB
Diff
346 lines
19 KiB
Diff
--- a/Makefile.fip 2022-09-13 14:23:00.000000000 +0200
|
|
+++ b/Makefile.fip 2022-09-13 14:28:02.177207076 +0200
|
|
@@ -11,7 +11,7 @@
|
|
# Converts cr/lf to just lf
|
|
DOS2UNIX = dos2unix
|
|
|
|
-LIBRARIES = -lstdc++ -ljxrglue $(shell pkg-config --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm
|
|
+LIBRARIES = -lstdc++ $(shell pkg-config --libs libjpeg libopenjp2 libpng libraw zlib) -lm
|
|
|
|
MODULES = $(SRCS:.c=.o)
|
|
MODULES := $(MODULES:.cpp=.o)
|
|
--- a/Makefile.gnu 2022-09-13 14:23:00.000000000 +0200
|
|
+++ b/Makefile.gnu 2022-09-13 14:27:40.215833103 +0200
|
|
@@ -14,7 +14,7 @@
|
|
# See Bug-Debian #845279
|
|
PKG_CONFIG ?= pkg-config
|
|
|
|
-LIBRARIES = -lstdc++ -ljxrglue $(shell $(PKG_CONFIG) --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm
|
|
+LIBRARIES = -lstdc++ $(shell $(PKG_CONFIG) --libs libjpeg libopenjp2 libpng libraw zlib) -lm
|
|
|
|
MODULES = $(SRCS:.c=.o)
|
|
MODULES := $(MODULES:.cpp=.o)
|
|
@@ -24,14 +24,14 @@
|
|
override CFLAGS += -DOPJ_STATIC
|
|
# LibRaw
|
|
override CFLAGS += -DNO_LCMS
|
|
-# LibJXR
|
|
+
|
|
override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
|
|
-override CFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib)
|
|
+override CFLAGS += $(INCLUDE) $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw zlib)
|
|
CXXFLAGS ?= -O3 -fPIC
|
|
override CXXFLAGS += -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
|
|
-# LibJXR
|
|
+
|
|
override CXXFLAGS += -D__ANSI__
|
|
-override CXXFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib)
|
|
+override CXXFLAGS += $(INCLUDE) $(shell $(PKG_CONFIG) --cflags libjpeg libopenjp2 libpng libraw zlib)
|
|
|
|
TARGET = freeimage
|
|
STATICLIB = lib$(TARGET).a
|
|
--- a/Makefile.srcs 2024-12-19 19:33:07.554120559 +0100
|
|
+++ b/Makefile.srcs 2024-12-19 19:36:01.988856257 +0100
|
|
@@ -1,5 +1,5 @@
|
|
VER_MAJOR = 3
|
|
VER_MINOR = 18.0
|
|
-SRCS = Source/FreeImage/BitmapAccess.cpp Source/FreeImage/CacheFile.cpp Source/FreeImage/ColorLookup.cpp Source/FreeImage/Conversion.cpp Source/FreeImage/Conversion16_555.cpp Source/FreeImage/Conversion16_565.cpp Source/FreeImage/Conversion24.cpp Source/FreeImage/Conversion32.cpp Source/FreeImage/Conversion4.cpp Source/FreeImage/Conversion8.cpp Source/FreeImage/ConversionFloat.cpp Source/FreeImage/ConversionRGB16.cpp Source/FreeImage/ConversionRGBA16.cpp Source/FreeImage/ConversionRGBAF.cpp Source/FreeImage/ConversionRGBF.cpp Source/FreeImage/ConversionType.cpp Source/FreeImage/ConversionUINT16.cpp Source/FreeImage/FreeImage.cpp Source/FreeImage/FreeImageC.c Source/FreeImage/FreeImageIO.cpp Source/FreeImage/Halftoning.cpp Source/FreeImage/J2KHelper.cpp Source/FreeImage/LFPQuantizer.cpp Source/FreeImage/MNGHelper.cpp Source/FreeImage/MemoryIO.cpp Source/FreeImage/MultiPage.cpp Source/FreeImage/NNQuantizer.cpp Source/FreeImage/PSDParser.cpp Source/FreeImage/PixelAccess.cpp Source/FreeImage/Plugin.cpp Source/FreeImage/PluginBMP.cpp Source/FreeImage/PluginCUT.cpp Source/FreeImage/PluginDDS.cpp Source/FreeImage/PluginEXR.cpp Source/FreeImage/PluginG3.cpp Source/FreeImage/PluginGIF.cpp Source/FreeImage/PluginHDR.cpp Source/FreeImage/PluginICO.cpp Source/FreeImage/PluginIFF.cpp Source/FreeImage/PluginJ2K.cpp Source/FreeImage/PluginJNG.cpp Source/FreeImage/PluginJP2.cpp Source/FreeImage/PluginJPEG.cpp Source/FreeImage/PluginJXR.cpp Source/FreeImage/PluginKOALA.cpp Source/FreeImage/PluginMNG.cpp Source/FreeImage/PluginPCD.cpp Source/FreeImage/PluginPCX.cpp Source/FreeImage/PluginPFM.cpp Source/FreeImage/PluginPICT.cpp Source/FreeImage/PluginPNG.cpp Source/FreeImage/PluginPNM.cpp Source/FreeImage/PluginPSD.cpp Source/FreeImage/PluginRAS.cpp Source/FreeImage/PluginRAW.cpp Source/FreeImage/PluginSGI.cpp Source/FreeImage/PluginTARGA.cpp Source/FreeImage/PluginTIFF.cpp Source/FreeImage/PluginWBMP.cpp Source/FreeImage/PluginWebP.cpp Source/FreeImage/PluginXBM.cpp Source/FreeImage/PluginXPM.cpp Source/FreeImage/TIFFLogLuv.cpp Source/FreeImage/ToneMapping.cpp Source/FreeImage/WuQuantizer.cpp Source/FreeImage/ZLibInterface.cpp Source/FreeImage/tmoColorConvert.cpp Source/FreeImage/tmoDrago03.cpp Source/FreeImage/tmoFattal02.cpp Source/FreeImage/tmoReinhard05.cpp Source/FreeImageToolkit/BSplineRotate.cpp Source/FreeImageToolkit/Background.cpp Source/FreeImageToolkit/Channels.cpp Source/FreeImageToolkit/ClassicRotate.cpp Source/FreeImageToolkit/Colors.cpp Source/FreeImageToolkit/CopyPaste.cpp Source/FreeImageToolkit/Display.cpp Source/FreeImageToolkit/Flip.cpp Source/FreeImageToolkit/MultigridPoissonSolver.cpp Source/FreeImageToolkit/Rescale.cpp Source/FreeImageToolkit/Resize.cpp Source/Metadata/Exif.cpp Source/Metadata/FIRational.cpp Source/Metadata/FreeImageTag.cpp Source/Metadata/IPTC.cpp Source/Metadata/TagConversion.cpp Source/Metadata/TagLib.cpp Source/Metadata/XTIFF.cpp
|
|
+SRCS = Source/FreeImage/BitmapAccess.cpp Source/FreeImage/CacheFile.cpp Source/FreeImage/ColorLookup.cpp Source/FreeImage/Conversion.cpp Source/FreeImage/Conversion16_555.cpp Source/FreeImage/Conversion16_565.cpp Source/FreeImage/Conversion24.cpp Source/FreeImage/Conversion32.cpp Source/FreeImage/Conversion4.cpp Source/FreeImage/Conversion8.cpp Source/FreeImage/ConversionFloat.cpp Source/FreeImage/ConversionRGB16.cpp Source/FreeImage/ConversionRGBA16.cpp Source/FreeImage/ConversionRGBAF.cpp Source/FreeImage/ConversionRGBF.cpp Source/FreeImage/ConversionType.cpp Source/FreeImage/ConversionUINT16.cpp Source/FreeImage/FreeImage.cpp Source/FreeImage/FreeImageC.c Source/FreeImage/FreeImageIO.cpp Source/FreeImage/GetType.cpp Source/FreeImage/Halftoning.cpp Source/FreeImage/J2KHelper.cpp Source/FreeImage/LFPQuantizer.cpp Source/FreeImage/MNGHelper.cpp Source/FreeImage/MemoryIO.cpp Source/FreeImage/MultiPage.cpp Source/FreeImage/NNQuantizer.cpp Source/FreeImage/PSDParser.cpp Source/FreeImage/PixelAccess.cpp Source/FreeImage/Plugin.cpp Source/FreeImage/PluginBMP.cpp Source/FreeImage/PluginCUT.cpp Source/FreeImage/PluginDDS.cpp Source/FreeImage/PluginG3.cpp Source/FreeImage/PluginGIF.cpp Source/FreeImage/PluginHDR.cpp Source/FreeImage/PluginICO.cpp Source/FreeImage/PluginIFF.cpp Source/FreeImage/PluginJ2K.cpp Source/FreeImage/PluginJNG.cpp Source/FreeImage/PluginJP2.cpp Source/FreeImage/PluginJPEG.cpp Source/FreeImage/PluginKOALA.cpp Source/FreeImage/PluginMNG.cpp Source/FreeImage/PluginPCD.cpp Source/FreeImage/PluginPCX.cpp Source/FreeImage/PluginPFM.cpp Source/FreeImage/PluginPICT.cpp Source/FreeImage/PluginPNG.cpp Source/FreeImage/PluginPNM.cpp Source/FreeImage/PluginPSD.cpp Source/FreeImage/PluginRAS.cpp Source/FreeImage/PluginRAW.cpp Source/FreeImage/PluginSGI.cpp Source/FreeImage/PluginTARGA.cpp Source/FreeImage/PluginWBMP.cpp Source/FreeImage/PluginXBM.cpp Source/FreeImage/PluginXPM.cpp Source/FreeImage/ToneMapping.cpp Source/FreeImage/WuQuantizer.cpp Source/FreeImage/ZLibInterface.cpp Source/FreeImage/tmoColorConvert.cpp Source/FreeImage/tmoDrago03.cpp Source/FreeImage/tmoFattal02.cpp Source/FreeImage/tmoReinhard05.cpp Source/FreeImageToolkit/BSplineRotate.cpp Source/FreeImageToolkit/Background.cpp Source/FreeImageToolkit/Channels.cpp Source/FreeImageToolkit/ClassicRotate.cpp Source/FreeImageToolkit/Colors.cpp Source/FreeImageToolkit/CopyPaste.cpp Source/FreeImageToolkit/Display.cpp Source/FreeImageToolkit/Flip.cpp Source/FreeImageToolkit/MultigridPoissonSolver.cpp Source/FreeImageToolkit/Rescale.cpp Source/FreeImageToolkit/Resize.cpp Source/Metadata/Exif.cpp Source/Metadata/FIRational.cpp Source/Metadata/FreeImageTag.cpp Source/Metadata/IPTC.cpp Source/Metadata/TagConversion.cpp Source/Metadata/TagLib.cpp
|
|
INCLS = Source/CacheFile.h Source/FreeImage.h Source/FreeImage/J2KHelper.h Source/FreeImage/PSDParser.h Source/FreeImageIO.h Source/FreeImageToolkit/Filters.h Source/FreeImageToolkit/Resize.h Source/MapIntrospector.h Source/Metadata/FIRational.h Source/Metadata/FreeImageTag.h Source/Plugin.h Source/Quantizers.h Source/ToneMapping.h Source/Utilities.h
|
|
-INCLUDE = -I. -ISource -ISource/Metadata -ISource/FreeImageToolkit -ISource/LibJPEG -ISource/LibPNG -ISource/LibTIFF4 -ISource/ZLib -ISource/LibOpenJPEG -ISource/OpenEXR -ISource/OpenEXR/Half -ISource/OpenEXR/Iex -ISource/OpenEXR/IlmImf -ISource/OpenEXR/IlmThread -ISource/OpenEXR/Imath -ISource/OpenEXR/IexMath -ISource/LibRawLite -ISource/LibRawLite/dcraw -ISource/LibRawLite/internal -ISource/LibRawLite/libraw -ISource/LibRawLite/src -ISource/LibWebP -ISource/LibJXR -ISource/LibJXR/common/include -ISource/LibJXR/image/sys -ISource/LibJXR/jxrgluelib
|
|
+INCLUDE = -I. -ISource -ISource/Metadata -ISource/FreeImageToolkit -ISource/LibJPEG -ISource/LibPNG -ISource/ZLib -ISource/LibOpenJPEG -ISource/LibRawLite -ISource/LibRawLite/dcraw -ISource/LibRawLite/internal -ISource/LibRawLite/libraw -ISource/LibRawLite/src
|
|
--- a/Source/FreeImage/Plugin.cpp 2017-02-18 16:09:28.000000000 +0100
|
|
+++ b/Source/FreeImage/Plugin.cpp 2024-12-19 19:03:31.000000000 +0100
|
|
@@ -254,27 +254,20 @@
|
|
s_plugins->AddNode(InitPNM, NULL, "PPMRAW", "Portable Pixelmap (RAW)", "ppm", "^P6");
|
|
s_plugins->AddNode(InitRAS);
|
|
s_plugins->AddNode(InitTARGA);
|
|
- s_plugins->AddNode(InitTIFF);
|
|
s_plugins->AddNode(InitWBMP);
|
|
s_plugins->AddNode(InitPSD);
|
|
s_plugins->AddNode(InitCUT);
|
|
s_plugins->AddNode(InitXBM);
|
|
s_plugins->AddNode(InitXPM);
|
|
s_plugins->AddNode(InitDDS);
|
|
- s_plugins->AddNode(InitGIF);
|
|
- s_plugins->AddNode(InitHDR);
|
|
- s_plugins->AddNode(InitG3);
|
|
+ s_plugins->AddNode(InitGIF);
|
|
+ s_plugins->AddNode(InitHDR);
|
|
s_plugins->AddNode(InitSGI);
|
|
- s_plugins->AddNode(InitEXR);
|
|
s_plugins->AddNode(InitJ2K);
|
|
s_plugins->AddNode(InitJP2);
|
|
s_plugins->AddNode(InitPFM);
|
|
s_plugins->AddNode(InitPICT);
|
|
s_plugins->AddNode(InitRAW);
|
|
- s_plugins->AddNode(InitWEBP);
|
|
-#if !(defined(_MSC_VER) && (_MSC_VER <= 1310))
|
|
- s_plugins->AddNode(InitJXR);
|
|
-#endif // unsupported by MS Visual Studio 2003 !!!
|
|
|
|
// external plugin initialization
|
|
|
|
--- a/Source/FreeImage.h 2024-12-19 19:05:24.238963346 +0100
|
|
+++ b/Source/FreeImage.h 2024-12-19 19:04:39.000000000 +0100
|
|
@@ -403,7 +403,6 @@
|
|
FIF_PPMRAW = 15,
|
|
FIF_RAS = 16,
|
|
FIF_TARGA = 17,
|
|
- FIF_TIFF = 18,
|
|
FIF_WBMP = 19,
|
|
FIF_PSD = 20,
|
|
FIF_CUT = 21,
|
|
@@ -412,16 +411,12 @@
|
|
FIF_DDS = 24,
|
|
FIF_GIF = 25,
|
|
FIF_HDR = 26,
|
|
- FIF_FAXG3 = 27,
|
|
FIF_SGI = 28,
|
|
- FIF_EXR = 29,
|
|
FIF_J2K = 30,
|
|
FIF_JP2 = 31,
|
|
FIF_PFM = 32,
|
|
FIF_PICT = 33,
|
|
- FIF_RAW = 34,
|
|
- FIF_WEBP = 35,
|
|
- FIF_JXR = 36
|
|
+ FIF_RAW = 34
|
|
};
|
|
|
|
/** Image type used in FreeImage.
|
|
@@ -678,15 +673,6 @@
|
|
#define BMP_SAVE_RLE 1
|
|
#define CUT_DEFAULT 0
|
|
#define DDS_DEFAULT 0
|
|
-#define EXR_DEFAULT 0 //! save data as half with piz-based wavelet compression
|
|
-#define EXR_FLOAT 0x0001 //! save data as float instead of as half (not recommended)
|
|
-#define EXR_NONE 0x0002 //! save with no compression
|
|
-#define EXR_ZIP 0x0004 //! save with zlib compression, in blocks of 16 scan lines
|
|
-#define EXR_PIZ 0x0008 //! save with piz-based wavelet compression
|
|
-#define EXR_PXR24 0x0010 //! save with lossy 24-bit float compression
|
|
-#define EXR_B44 0x0020 //! save with lossy 44% float compression - goes to 22% when combined with EXR_LC
|
|
-#define EXR_LC 0x0040 //! save images with one luminance and two chroma channels, rather than as RGB (lossy compression)
|
|
-#define FAXG3_DEFAULT 0
|
|
#define GIF_DEFAULT 0
|
|
#define GIF_LOAD256 1 //! load the image as a 256 color image with ununsed palette entries, if it's 16 or 2 color
|
|
#define GIF_PLAYBACK 2 //! 'Play' the GIF to generate each frame (as 32bpp) instead of returning raw frame data when loading
|
|
@@ -750,25 +736,9 @@
|
|
#define TARGA_DEFAULT 0
|
|
#define TARGA_LOAD_RGB888 1 //! if set the loader converts RGB555 and ARGB8888 -> RGB888.
|
|
#define TARGA_SAVE_RLE 2 //! if set, the writer saves with RLE compression
|
|
-#define TIFF_DEFAULT 0
|
|
-#define TIFF_CMYK 0x0001 //! reads/stores tags for separated CMYK (use | to combine with compression flags)
|
|
-#define TIFF_PACKBITS 0x0100 //! save using PACKBITS compression
|
|
-#define TIFF_DEFLATE 0x0200 //! save using DEFLATE compression (a.k.a. ZLIB compression)
|
|
-#define TIFF_ADOBE_DEFLATE 0x0400 //! save using ADOBE DEFLATE compression
|
|
-#define TIFF_NONE 0x0800 //! save without any compression
|
|
-#define TIFF_CCITTFAX3 0x1000 //! save using CCITT Group 3 fax encoding
|
|
-#define TIFF_CCITTFAX4 0x2000 //! save using CCITT Group 4 fax encoding
|
|
-#define TIFF_LZW 0x4000 //! save using LZW compression
|
|
-#define TIFF_JPEG 0x8000 //! save using JPEG compression
|
|
-#define TIFF_LOGLUV 0x10000 //! save using LogLuv compression
|
|
#define WBMP_DEFAULT 0
|
|
#define XBM_DEFAULT 0
|
|
#define XPM_DEFAULT 0
|
|
-#define WEBP_DEFAULT 0 //! save with good quality (75:1)
|
|
-#define WEBP_LOSSLESS 0x100 //! save in lossless mode
|
|
-#define JXR_DEFAULT 0 //! save with quality 80 and no chroma subsampling (4:4:4)
|
|
-#define JXR_LOSSLESS 0x0064 //! save lossless
|
|
-#define JXR_PROGRESSIVE 0x2000 //! save as a progressive-JXR (use | to combine with other save flags)
|
|
|
|
// Background filling options ---------------------------------------------------------
|
|
// Constants used in FreeImage_FillBackground and FreeImage_EnlargeCanvas
|
|
--- a/Source/Plugin.h 2017-02-18 16:09:28.000000000 +0100
|
|
+++ b/Source/Plugin.h 2024-12-19 19:04:54.000000000 +0100
|
|
@@ -122,23 +122,18 @@
|
|
void DLL_CALLCONV InitPSD(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitRAS(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitTARGA(Plugin *plugin, int format_id);
|
|
-void DLL_CALLCONV InitTIFF(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitWBMP(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitXBM(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitXPM(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitDDS(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitGIF(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitHDR(Plugin *plugin, int format_id);
|
|
-void DLL_CALLCONV InitG3(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitSGI(Plugin *plugin, int format_id);
|
|
-void DLL_CALLCONV InitEXR(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitJ2K(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitJP2(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitPFM(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitPICT(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitRAW(Plugin *plugin, int format_id);
|
|
void DLL_CALLCONV InitJNG(Plugin *plugin, int format_id);
|
|
-void DLL_CALLCONV InitWEBP(Plugin *plugin, int format_id);
|
|
-void DLL_CALLCONV InitJXR(Plugin *plugin, int format_id);
|
|
|
|
#endif //!PLUGIN_H
|
|
--- /dev/null 2024-11-01 21:59:53.158793231 +0100
|
|
+++ b/Source/FreeImage/GetType.cpp 2024-12-19 19:30:44.660241140 +0100
|
|
@@ -0,0 +1,163 @@
|
|
+// ==========================================================
|
|
+// GetType / Validate
|
|
+//
|
|
+// Design and implementation by
|
|
+// - Floris van den Berg (flvdberg@wxs.nl)
|
|
+// - Hervé Drolon (drolon@infonie.fr)
|
|
+//
|
|
+// This file is part of FreeImage 3
|
|
+//
|
|
+// COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
|
|
+// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
|
|
+// THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
|
|
+// OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
|
|
+// CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
|
|
+// THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
|
|
+// SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
|
|
+// PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
|
|
+// THIS DISCLAIMER.
|
|
+//
|
|
+// Use at your own risk!
|
|
+// ==========================================================
|
|
+
|
|
+#ifdef _MSC_VER
|
|
+#pragma warning (disable : 4786) // identifier was truncated to 'number' characters
|
|
+#endif
|
|
+
|
|
+#include "FreeImage.h"
|
|
+#include "Utilities.h"
|
|
+#include "FreeImageIO.h"
|
|
+#include "Plugin.h"
|
|
+
|
|
+// =====================================================================
|
|
+// Generic stream file type access
|
|
+// =====================================================================
|
|
+
|
|
+FREE_IMAGE_FORMAT DLL_CALLCONV
|
|
+FreeImage_GetFileTypeFromHandle(FreeImageIO *io, fi_handle handle, int size) {
|
|
+ if (handle != NULL) {
|
|
+ int fif_count = FreeImage_GetFIFCount();
|
|
+
|
|
+ for (int i = 0; i < fif_count; ++i) {
|
|
+ FREE_IMAGE_FORMAT fif = (FREE_IMAGE_FORMAT)i;
|
|
+ if (FreeImage_ValidateFIF(fif, io, handle)) {
|
|
+ // many camera raw files use a TIFF signature ...
|
|
+ // ... try to revalidate against FIF_RAW (even if it breaks the code genericity)
|
|
+ if (FreeImage_ValidateFIF(FIF_RAW, io, handle)) {
|
|
+ return FIF_RAW;
|
|
+ }
|
|
+ return fif;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return FIF_UNKNOWN;
|
|
+}
|
|
+
|
|
+// =====================================================================
|
|
+// File stream file type access
|
|
+// =====================================================================
|
|
+
|
|
+FREE_IMAGE_FORMAT DLL_CALLCONV
|
|
+FreeImage_GetFileType(const char *filename, int size) {
|
|
+ FreeImageIO io;
|
|
+ SetDefaultIO(&io);
|
|
+
|
|
+ FILE *handle = fopen(filename, "rb");
|
|
+
|
|
+ if (handle != NULL) {
|
|
+ FREE_IMAGE_FORMAT format = FreeImage_GetFileTypeFromHandle(&io, (fi_handle)handle, size);
|
|
+
|
|
+ fclose(handle);
|
|
+
|
|
+ return format;
|
|
+ }
|
|
+
|
|
+ return FIF_UNKNOWN;
|
|
+}
|
|
+
|
|
+FREE_IMAGE_FORMAT DLL_CALLCONV
|
|
+FreeImage_GetFileTypeU(const wchar_t *filename, int size) {
|
|
+#ifdef _WIN32
|
|
+ FreeImageIO io;
|
|
+ SetDefaultIO(&io);
|
|
+ FILE *handle = _wfopen(filename, L"rb");
|
|
+
|
|
+ if (handle != NULL) {
|
|
+ FREE_IMAGE_FORMAT format = FreeImage_GetFileTypeFromHandle(&io, (fi_handle)handle, size);
|
|
+
|
|
+ fclose(handle);
|
|
+
|
|
+ return format;
|
|
+ }
|
|
+#endif
|
|
+ return FIF_UNKNOWN;
|
|
+}
|
|
+
|
|
+// =====================================================================
|
|
+// Memory stream file type access
|
|
+// =====================================================================
|
|
+
|
|
+FREE_IMAGE_FORMAT DLL_CALLCONV
|
|
+FreeImage_GetFileTypeFromMemory(FIMEMORY *stream, int size) {
|
|
+ FreeImageIO io;
|
|
+ SetMemoryIO(&io);
|
|
+
|
|
+ if (stream != NULL) {
|
|
+ return FreeImage_GetFileTypeFromHandle(&io, (fi_handle)stream, size);
|
|
+ }
|
|
+
|
|
+ return FIF_UNKNOWN;
|
|
+}
|
|
+
|
|
+// --------------------------------------------------------------------------
|
|
+
|
|
+BOOL DLL_CALLCONV
|
|
+FreeImage_ValidateFromHandle(FREE_IMAGE_FORMAT fif, FreeImageIO *io, fi_handle handle) {
|
|
+ return FreeImage_ValidateFIF(fif, io, handle);
|
|
+}
|
|
+
|
|
+BOOL DLL_CALLCONV
|
|
+FreeImage_Validate(FREE_IMAGE_FORMAT fif, const char *filename) {
|
|
+ FreeImageIO io;
|
|
+ SetDefaultIO(&io);
|
|
+
|
|
+ FILE *handle = fopen(filename, "rb");
|
|
+
|
|
+ if (handle != NULL) {
|
|
+ BOOL bIsValidFIF = FreeImage_ValidateFromHandle(fif, &io, (fi_handle)handle);
|
|
+ fclose(handle);
|
|
+ return bIsValidFIF;
|
|
+ }
|
|
+
|
|
+ return FALSE;
|
|
+}
|
|
+
|
|
+BOOL DLL_CALLCONV
|
|
+FreeImage_ValidateU(FREE_IMAGE_FORMAT fif, const wchar_t *filename) {
|
|
+#ifdef _WIN32
|
|
+ FreeImageIO io;
|
|
+ SetDefaultIO(&io);
|
|
+ FILE *handle = _wfopen(filename, L"rb");
|
|
+
|
|
+ if (handle != NULL) {
|
|
+ BOOL bIsValidFIF = FreeImage_ValidateFromHandle(fif, &io, (fi_handle)handle);
|
|
+ fclose(handle);
|
|
+ return bIsValidFIF;
|
|
+ }
|
|
+#endif
|
|
+ return FALSE;
|
|
+}
|
|
+
|
|
+BOOL DLL_CALLCONV
|
|
+FreeImage_ValidateFromMemory(FREE_IMAGE_FORMAT fif, FIMEMORY *stream) {
|
|
+ FreeImageIO io;
|
|
+ SetMemoryIO(&io);
|
|
+
|
|
+ if (stream != NULL) {
|
|
+ BOOL bIsValidFIF = FreeImage_ValidateFromHandle(fif, &io, (fi_handle)stream);
|
|
+ return bIsValidFIF;
|
|
+ }
|
|
+
|
|
+ return FALSE;
|
|
+}
|