X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/38d4b1e4bc01ea5c58ee8e22c924408d94aa2e9e..91cb7f52cccaff9045f3f63568d3cb638f386694:/src/common/imagtiff.cpp diff --git a/src/common/imagtiff.cpp b/src/common/imagtiff.cpp index 07202e5c1c..4db167ecbb 100644 --- a/src/common/imagtiff.cpp +++ b/src/common/imagtiff.cpp @@ -11,18 +11,20 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif -#include "wx/defs.h" - #if wxUSE_IMAGE && wxUSE_LIBTIFF #include "wx/imagtiff.h" -#include "wx/bitmap.h" -#include "wx/debug.h" -#include "wx/log.h" -#include "wx/app.h" + +#ifndef WX_PRECOMP + #include "wx/log.h" + #include "wx/app.h" + #include "wx/intl.h" + #include "wx/bitmap.h" +#endif + extern "C" { #include "tiff.h" @@ -30,11 +32,14 @@ extern "C" } #include "wx/filefn.h" #include "wx/wfstream.h" -#include "wx/intl.h" #include "wx/module.h" #ifndef TIFFLINKAGEMODE - #define TIFFLINKAGEMODE LINKAGEMODE + #if defined(__WATCOMC__) && defined(__WXMGL__) + #define TIFFLINKAGEMODE cdecl + #else + #define TIFFLINKAGEMODE LINKAGEMODE + #endif #endif //----------------------------------------------------------------------------- @@ -94,7 +99,7 @@ _tiffReadProc(thandle_t handle, tdata_t buf, tsize_t size) { wxInputStream *stream = (wxInputStream*) handle; stream->Read( (void*) buf, (size_t) size ); - return stream->LastRead(); + return wx_truncate_cast(tsize_t, stream->LastRead()); } tsize_t TIFFLINKAGEMODE @@ -102,7 +107,7 @@ _tiffWriteProc(thandle_t handle, tdata_t buf, tsize_t size) { wxOutputStream *stream = (wxOutputStream*) handle; stream->Write( (void*) buf, (size_t) size ); - return stream->LastWrite(); + return wx_truncate_cast(tsize_t, stream->LastWrite()); } toff_t TIFFLINKAGEMODE @@ -389,7 +394,13 @@ bool wxTIFFHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbo int compression = image->GetOptionInt(wxIMAGE_OPTION_COMPRESSION); if ( !compression ) - compression=COMPRESSION_LZW; + { + // we can't use COMPRESSION_LZW because current version of libtiff + // doesn't implement it ("no longer implemented due to Unisys patent + // enforcement") and other compression methods are lossy so we + // shouldn't use them by default -- and the only remaining one is none + compression = COMPRESSION_NONE; + } TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, spp); TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bpp);