initial import
This commit is contained in:
68
freeimage/PKGBUILD
Normal file
68
freeimage/PKGBUILD
Normal file
@@ -0,0 +1,68 @@
|
||||
# Maintainer: Jesus E. <heckyel@riseup.net>
|
||||
|
||||
pkgname=freeimage
|
||||
pkgver=3.18.0
|
||||
_debver=$pkgver
|
||||
_debrel=6
|
||||
pkgrel=3
|
||||
pkgdesc="Free software library project for developers who would like to support popular graphics image formats"
|
||||
arch=('i686' 'x86_64')
|
||||
license=('GPL-2' 'custom:FIPL')
|
||||
url='https://freeimage.sourceforge.net/'
|
||||
depends=('libjpeg-turbo' 'openjpeg2' 'libtiff' 'libraw')
|
||||
makedepends=('mesa' 'glu' 'quilt')
|
||||
source=("https://downloads.sourceforge.net/project/freeimage/Source%20Distribution/${pkgver}/FreeImage${pkgver//./}.zip"
|
||||
"https://deb.debian.org/debian/pool/main/f/freeimage/freeimage_${_debver}+ds2-${_debrel}+deb11u1.debian.tar.xz"
|
||||
"fix-build.patch")
|
||||
sha512sums=('9d9cc7e2d57552c3115e277aeb036e0455204d389026b17a3f513da5be1fd595421655488bb1ec2f76faebed66049119ca55e26e2a6d37024b3fb7ef36ad4818'
|
||||
'22f9088f0a961329c245fab6e641ddd9ecbef8f83a344cdef3faed6df63415484e4ffdccd676464a6e1690f4eab286928c8e58348c90ea0032a86a472c6d2cd4'
|
||||
'ae113ded05f94b15168dabc7c8997a26e4136000792144da390a6ef570b367e861163041e772b2705daf1265ef0e34cee7fae743bfce5a54a035ed0817d369d8')
|
||||
|
||||
prepare() {
|
||||
cd FreeImage
|
||||
if [[ ${pkgver%.*} = ${_debver%.*} ]]; then
|
||||
# Debian patches
|
||||
export QUILT_PATCHES=debian/patches
|
||||
export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
|
||||
export QUILT_DIFF_ARGS='--no-timestamps'
|
||||
|
||||
mv "$srcdir"/debian .
|
||||
|
||||
quilt push -av
|
||||
fi
|
||||
|
||||
rm Source/FreeImage/GetType.cpp
|
||||
rm -r Source/Lib* Source/ZLib Source/OpenEXR
|
||||
# can't be built due to private headers
|
||||
> Source/FreeImage/PluginG3.cpp
|
||||
> Source/FreeImageToolkit/JPEGTransform.cpp
|
||||
}
|
||||
|
||||
build() {
|
||||
cd FreeImage
|
||||
sh gensrclist.sh
|
||||
sh genfipsrclist.sh
|
||||
|
||||
# change build-flags for compiling
|
||||
if [[ $CARCH = "i686" ]]; then
|
||||
export CXXFLAGS="-Og"
|
||||
export CFLAGS="-Og"
|
||||
elif [[ $CARCH = "x86_64" ]]; then
|
||||
export CXXFLAGS="-fPIC"
|
||||
export CFLAGS="-fPIC"
|
||||
fi
|
||||
|
||||
# additional patch before build, removal of non-free parts
|
||||
patch -Np1 -i "${srcdir}"/fix-build.patch
|
||||
|
||||
make -f Makefile.gnu
|
||||
make -f Makefile.fip
|
||||
}
|
||||
|
||||
package() {
|
||||
cd FreeImage
|
||||
make -f Makefile.gnu DESTDIR="${pkgdir}" install
|
||||
make -f Makefile.fip DESTDIR="${pkgdir}" install
|
||||
|
||||
install -Dm644 "${srcdir}"/FreeImage/license-{fi,gplv2}.txt -t "${pkgdir}"/usr/share/licenses/${pkgname}
|
||||
}
|
||||
345
freeimage/fix-build.patch
Normal file
345
freeimage/fix-build.patch
Normal file
@@ -0,0 +1,345 @@
|
||||
--- 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;
|
||||
+}
|
||||
Reference in New Issue
Block a user