summaryrefslogtreecommitdiff
path: root/toolbin
diff options
context:
space:
mode:
authorMichael Vrhel <michael.vrhel@artifex.com>2020-05-19 12:18:29 -0700
committerRobin Watts <Robin.Watts@artifex.com>2020-05-20 19:50:36 +0100
commitc9142412c3ec52e2fcb42053706352a9ee5d9a74 (patch)
tree62f6b9eeb49285090f1507fc059aa0bb0785d22d /toolbin
parentcf15813c35a75067e828608c665dae30999f8dd5 (diff)
downloadghostpdl-c9142412c3ec52e2fcb42053706352a9ee5d9a74.tar.gz
Add tiff to bmpcmp
This upgrades the VS solution to 2019 for the bmpcmp project. Fixes a couple minor issues that existed with some of the project configurations and add tiff support.
Diffstat (limited to 'toolbin')
-rw-r--r--toolbin/bmpcmp.c206
-rw-r--r--toolbin/bmpcmp.sln15
-rw-r--r--toolbin/bmpcmp.vcproj454
-rw-r--r--toolbin/bmpcmp.vcxproj235
4 files changed, 449 insertions, 461 deletions
diff --git a/toolbin/bmpcmp.c b/toolbin/bmpcmp.c
index 1ab6b64a8..3fed975bd 100644
--- a/toolbin/bmpcmp.c
+++ b/toolbin/bmpcmp.c
@@ -16,6 +16,10 @@
#include <png.h>
#endif
+#ifdef HAVE_LIBTIFF
+#include "tiffio.h"
+#endif
+
#ifndef BETTER_CMYK
#define BETTER_CMYK 1
#endif
@@ -90,6 +94,7 @@ typedef struct
typedef struct ImageReader
{
FILE *file;
+ const char* file_name;
void *(*read)(struct ImageReader *,
int *w,
int *h,
@@ -1017,6 +1022,193 @@ static void *pnm_read(ImageReader *im,
return bmp;
}
+#ifdef HAVE_LIBTIFF
+static tmsize_t tiff_cread(thandle_t im_,
+ void *buf,
+ tmsize_t n)
+{
+ ImageReader *im = (ImageReader *)im_;
+ return fread(buf, 1, n, im->file);
+}
+
+static tmsize_t tiff_cwrite(thandle_t im_,
+ void *buf,
+ tmsize_t n)
+{
+ return 0;
+}
+
+static toff_t tiff_cseek(thandle_t im_,
+ toff_t offset,
+ int whence)
+{
+ ImageReader *im = (ImageReader *)im_;
+ fseek(im->file, (long)offset, whence);
+ return (toff_t)ftell(im->file);
+}
+
+static int tiff_cclose(thandle_t im_)
+{
+ return 0;
+}
+
+static toff_t tiff_csize(thandle_t im_)
+{
+ ImageReader *im = (ImageReader *)im_;
+ long pos = ftell(im->file);
+ toff_t size;
+
+ fseek(im->file, 0, SEEK_END);
+ size = (toff_t)ftell(im->file);
+ fseek(im->file, pos, SEEK_SET);
+ return size;
+}
+
+static void* tif_read(ImageReader* im,
+ int* im_width,
+ int* im_height,
+ int* span,
+ int* bpp,
+ int* cmyk)
+{
+ TIFF* tif;
+ uint16 compression;
+ uint16 bpc, num_comps, planar, photometric;
+ uint32 row;
+ int is_tiled;
+ unsigned char *data, *row_ptr;
+ tdata_t buf;
+ uint32 width;
+ uint32 height;
+
+ /* There is only one image in each file */
+ if (ftell(im->file) != 0)
+ return NULL;
+
+ tif = TIFFClientOpen(im->file_name, "rb",
+ (thandle_t)im,
+ tiff_cread, tiff_cwrite,
+ tiff_cseek, tiff_cclose,
+ tiff_csize,
+ NULL, NULL/* map/unmap */);
+
+ if (tif == NULL) {
+ fprintf(stderr, "bmpcmp: TIFF failed to parse\n");
+ exit(1);
+ }
+
+ TIFFGetField(tif, TIFFTAG_COMPRESSION, &compression);
+ if (compression == COMPRESSION_JPEG) {
+ fprintf(stderr, "bmpcmp: JPEG compression not supported for TIFF\n");
+ exit(1);
+ }
+
+ TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &photometric);
+ if (!(photometric == PHOTOMETRIC_SEPARATED ||
+ photometric == PHOTOMETRIC_RGB)) {
+ fprintf(stderr, "bmpcmp: Photometric encoding not supported for TIFF\n");
+ exit(1);
+ }
+
+ TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &num_comps);
+ if (num_comps != 3 && photometric == PHOTOMETRIC_RGB) {
+ fprintf(stderr, "bmpcmp: Alpha not supported for TIFF\n");
+ exit(1);
+ }
+ if (num_comps != 4 && photometric == PHOTOMETRIC_SEPARATED) {
+ fprintf(stderr, "bmpcmp: Alpha not supported for TIFF\n");
+ exit(1);
+ }
+
+ TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &width);
+ TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &height);
+ TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bpc);
+ TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &planar);
+
+ if (width == 0 || height == 0 || bpc == 0 || num_comps == 0) {
+ fprintf(stderr, "bmpcmp: Bad TIFF content!\n");
+ exit(1);
+ }
+ if (bpc != 8) {
+ fprintf(stderr, "bmpcmp: Only support 8 bpc TIFF!\n");
+ exit(1);
+ }
+ if (num_comps != 1 && num_comps != 3 && num_comps != 4) {
+ fprintf(stderr, "bmpcmp: Only support Gray, RGB or CMYK TIFF!\n");
+ exit(1);
+ }
+ if (num_comps != 4 && planar == PLANARCONFIG_SEPARATE) {
+ fprintf(stderr, "bmpcmp: Only support planar TIFFs if they are CMYK!\n");
+ exit(1);
+ }
+
+ is_tiled = TIFFIsTiled(tif);
+ if (is_tiled) {
+ fprintf(stderr, "bmpcmp: TIFF tiled format not supported!\n");
+ exit(1);
+ }
+
+ data = Malloc(height * width * 4);
+ row_ptr = data;
+
+ buf = _TIFFmalloc(TIFFScanlineSize(tif));
+ if (buf == NULL) {
+ fprintf(stderr, "bmpcmp: TIFF malloc failed\n");
+ exit(1);
+ }
+ if (planar == PLANARCONFIG_CONTIG) {
+ for (row = 0; row < height; row++) {
+ TIFFReadScanline(tif, buf, row, 0);
+ if (num_comps == 4)
+ memcpy(row_ptr, buf, width * 4);
+ else if (num_comps == 3) {
+ uint32 i;
+ char *out = (char *)row_ptr;
+ const char *in = (const char *)buf;
+ for (i = width; i != 0; i--) {
+ *out++ = in[2];
+ *out++ = in[1];
+ *out++ = in[0];
+ *out++ = 0;
+ in += 3;
+ }
+ } else if (num_comps == 1) {
+ uint32 i;
+ char *out = (char *)row_ptr;
+ const char *in = (const char *)buf;
+ for (i = width; i != 0; i--) {
+ *out++ = *in;
+ *out++ = *in;
+ *out++ = *in++;
+ *out++ = 0;
+ }
+ }
+ row_ptr += (width * 4);
+ }
+ } else if (planar == PLANARCONFIG_SEPARATE) {
+ uint16 s, nsamples;
+
+ TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &nsamples);
+ for (s = 0; s < nsamples; s++)
+ for (row = 0; row < height; row++) {
+ TIFFReadScanline(tif, buf, row, s);
+ memcpy(row_ptr, buf, width * 4);
+ row_ptr += (width * 4);
+ }
+ }
+ _TIFFfree(buf);
+ TIFFClose(tif);
+
+ *im_width = width;
+ *im_height = height;
+ *span = width * 4;
+ *bpp = 32;
+ *cmyk = num_comps == 4;
+
+ return data;
+}
+#endif
+
#ifdef HAVE_LIBPNG
static void *png_read(ImageReader *im,
int *width,
@@ -1027,7 +1219,8 @@ static void *png_read(ImageReader *im,
{
png_structp png;
png_infop info;
- int stride, w, h, y, x;
+ size_t stride;
+ int w, h, y, x;
unsigned char *data;
int expand = 0;
@@ -1088,8 +1281,8 @@ static void *png_read(ImageReader *im,
*width = w;
*height = h;
- *span = stride;
- *bpp = (stride * 8) / w;
+ *span = (int) stride;
+ *bpp = (int) (stride * 8) / w;
*cmyk = 0;
return data;
}
@@ -1403,6 +1596,7 @@ static void image_open(ImageReader *im,
fprintf(stderr, "bmpcmp: %s failed to open\n", filename);
exit(EXIT_FAILURE);
}
+ im->file_name = filename;
/* Identify the filetype */
type = fgetc(im->file);
@@ -1426,6 +1620,11 @@ static void image_open(ImageReader *im,
im->read = cups_read_be;
else
goto fail;
+#ifdef HAVE_LIBTIFF
+ } else if (type == 0x49 || type == 0x4D) {
+ im->read = tif_read;
+ ungetc(type, im->file);
+#endif
} else {
type |= (fgetc(im->file)<<8);
if (type == 0x4d42) { /* BM */
@@ -2501,7 +2700,6 @@ lookup(int c, int m, int y, int k,
int rx, ry, rz;
int x0, y0, z0;
int X0, X1, Y0, Y1, Z0, Z1;
- int i;
int c0, c1, c2, c3, Rest;
int OutChan;
int Tmp1[3], Tmp2[3];
diff --git a/toolbin/bmpcmp.sln b/toolbin/bmpcmp.sln
index 6b371ad77..44e3c45d4 100644
--- a/toolbin/bmpcmp.sln
+++ b/toolbin/bmpcmp.sln
@@ -1,26 +1,35 @@

-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bmpcmp", "bmpcmp.vcproj", "{460A58D8-7094-48EC-B996-F456D1BD08A9}"
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30104.148
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bmpcmp", "bmpcmp.vcxproj", "{460A58D8-7094-48EC-B996-F456D1BD08A9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|Win326 = Debug|Win326
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
+ Release|Win326 = Release|Win326
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Debug|Win32.ActiveCfg = Debug|Win32
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Debug|Win32.Build.0 = Debug|Win32
+ {460A58D8-7094-48EC-B996-F456D1BD08A9}.Debug|Win326.ActiveCfg = Debug|Win32
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Debug|x64.ActiveCfg = Debug|x64
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Debug|x64.Build.0 = Debug|x64
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Release|Win32.ActiveCfg = Release|Win32
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Release|Win32.Build.0 = Release|Win32
+ {460A58D8-7094-48EC-B996-F456D1BD08A9}.Release|Win326.ActiveCfg = Release|Win32
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Release|x64.ActiveCfg = Release|x64
{460A58D8-7094-48EC-B996-F456D1BD08A9}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E5CB3F49-D596-4CFF-A2E8-900228D88E11}
+ EndGlobalSection
EndGlobal
diff --git a/toolbin/bmpcmp.vcproj b/toolbin/bmpcmp.vcproj
deleted file mode 100644
index 03bdf2020..000000000
--- a/toolbin/bmpcmp.vcproj
+++ /dev/null
@@ -1,454 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8.00"
- Name="bmpcmp"
- ProjectGUID="{460A58D8-7094-48EC-B996-F456D1BD08A9}"
- RootNamespace="bmpcmp"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="Debug"
- IntermediateDirectory="Debug"
- ConfigurationType="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\libpng;..\zlib;..\debugobj\"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;/DHAVE_LIBPNG"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="Release"
- IntermediateDirectory="Release"
- ConfigurationType="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\libpng;..\zlib;..\debugobj\"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;/DHAVE_LIBPNG"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\libpng;..\zlib;..\debugobj\"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;/DHAVE_LIBPNG"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="..\libpng;..\zlib;..\debugobj\"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;/DHAVE_LIBPNG"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\zlib\adler32.c"
- >
- </File>
- <File
- RelativePath=".\bmpcmp.c"
- >
- </File>
- <File
- RelativePath="..\zlib\compress.c"
- >
- </File>
- <File
- RelativePath="..\zlib\crc32.c"
- >
- </File>
- <File
- RelativePath="..\zlib\deflate.c"
- >
- </File>
- <File
- RelativePath="..\zlib\infback.c"
- >
- </File>
- <File
- RelativePath="..\zlib\inffast.c"
- >
- </File>
- <File
- RelativePath="..\zlib\inflate.c"
- >
- </File>
- <File
- RelativePath="..\zlib\inftrees.c"
- >
- </File>
- <File
- RelativePath="..\libpng\png.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngerror.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngget.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngmem.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngpread.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngread.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngrio.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngrtran.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngrutil.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngset.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngtrans.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngwio.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngwrite.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngwtran.c"
- >
- </File>
- <File
- RelativePath="..\libpng\pngwutil.c"
- >
- </File>
- <File
- RelativePath="..\zlib\trees.c"
- >
- </File>
- <File
- RelativePath="..\zlib\uncompr.c"
- >
- </File>
- <File
- RelativePath="..\zlib\zutil.c"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/toolbin/bmpcmp.vcxproj b/toolbin/bmpcmp.vcxproj
new file mode 100644
index 000000000..ef65ad53d
--- /dev/null
+++ b/toolbin/bmpcmp.vcxproj
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{460A58D8-7094-48EC-B996-F456D1BD08A9}</ProjectGuid>
+ <RootNamespace>bmpcmp</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v142</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v142</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v142</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v142</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>16.0.30028.132</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>Debug\</OutDir>
+ <IntDir>Debug\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>Release\</OutDir>
+ <IntDir>Release\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(Platform)\$(Configuration)\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(Platform)\$(Configuration)\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\libpng;..\zlib;..\debugobj\;..\tiff\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;HAVE_LIBPNG;HAVE_LIBTIFF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\libpng;..\zlib;..\debugobj\;..\tiff\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_LIBPNG;HAVE_LIBTIFF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\libpng;..\zlib;..\debugobj\;..\tiff\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;HAVE_LIBPNG;HAVE_LIBTIFF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\libpng;..\zlib;..\debugobj\;..\tiff\libtiff;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_LIBPNG;HAVE_LIBTIFF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\libpng\png.c" />
+ <ClCompile Include="..\libpng\pngerror.c" />
+ <ClCompile Include="..\libpng\pngget.c" />
+ <ClCompile Include="..\libpng\pngmem.c" />
+ <ClCompile Include="..\libpng\pngpread.c" />
+ <ClCompile Include="..\libpng\pngread.c" />
+ <ClCompile Include="..\libpng\pngrio.c" />
+ <ClCompile Include="..\libpng\pngrtran.c" />
+ <ClCompile Include="..\libpng\pngrutil.c" />
+ <ClCompile Include="..\libpng\pngset.c" />
+ <ClCompile Include="..\libpng\pngtrans.c" />
+ <ClCompile Include="..\libpng\pngwio.c" />
+ <ClCompile Include="..\libpng\pngwrite.c" />
+ <ClCompile Include="..\libpng\pngwtran.c" />
+ <ClCompile Include="..\libpng\pngwutil.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_aux.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_close.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_codec.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_color.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_compress.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_dir.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_dirinfo.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_dirread.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_dirwrite.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_dumpmode.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_error.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_extension.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_fax3.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_fax3sm.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_flush.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_getimage.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_jbig.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_jpeg.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_jpeg_12.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_luv.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_lzma.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_lzw.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_next.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_ojpeg.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_open.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_packbits.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_pixarlog.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_predict.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_print.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_read.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_strip.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_swab.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_thunder.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_tile.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_version.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_warning.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_webp.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_win32.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_write.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_zip.c" />
+ <ClCompile Include="..\tiff\libtiff\tif_zstd.c" />
+ <ClCompile Include="..\zlib\adler32.c" />
+ <ClCompile Include="..\zlib\compress.c" />
+ <ClCompile Include="..\zlib\crc32.c" />
+ <ClCompile Include="..\zlib\deflate.c" />
+ <ClCompile Include="..\zlib\infback.c" />
+ <ClCompile Include="..\zlib\inffast.c" />
+ <ClCompile Include="..\zlib\inflate.c" />
+ <ClCompile Include="..\zlib\inftrees.c" />
+ <ClCompile Include="..\zlib\trees.c" />
+ <ClCompile Include="..\zlib\uncompr.c" />
+ <ClCompile Include="..\zlib\zutil.c" />
+ <ClCompile Include="bmpcmp.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file