Commit Graph

90 Commits

Author SHA1 Message Date
Vadim Zeitlin
37424888b8 No real changes, just fix some typos in comments.
Closes #14276.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-07 13:12:27 +00:00
Vadim Zeitlin
0e1f8ea4a3 Remove wxMGL port.
The company behind MGL toolkit (SciTech) doesn't exist since several years and
this port is not used by anybody, so remove it to ease maintenance burden.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-15 14:46:41 +00:00
Dimitri Schoolwerth
ab176b4b50 Added alpha saving support to TIFF image handler.
Added support for saving alpha with RGB, greyscale, and black and white images.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-29 01:13:06 +00:00
Dimitri Schoolwerth
ebbaec82fa Fixed loading greyscale with alpha TIFF images.
The alpha channel was not detected because of wrong hasAlpha determination. Also TIFFReadRGBAImage[Oriented] doesn't appear to decode an alpha channel for images that are greyscale so decode greyscale with alpha images using TIFFReadScanline.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 23:45:17 +00:00
Dimitri Schoolwerth
a000de7794 Fixed copying only 1/3 of scanline when saving TIFF image in rare cases.
If our calculated image pitch is not equal to what TIFFScanlineSize returns a scanline buffer would be used. In that case the number of bytes being copied was equal to the image's width instead of pitch (width times 3).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 22:44:04 +00:00
Dimitri Schoolwerth
f60e313437 Added support for loading black and white TIFF images with alpha.
As TIFFReadRGBAImage[Oriented] can't deal with all images make use of TIFFReadScanline to decode per scanline. Currently only the case of a black and white image with alpha (for a total of 2 bits per pixel) is handled.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 22:17:04 +00:00
Dimitri Schoolwerth
5d2be7cc55 Read TIFF images from top to bottom instead of bottom to top.
Use TIFFReadRGBAImageOriented with a parameter of ORIENTATION_TOPLEFT instead of using TIFFReadRGBAImage (which uses ORIENTATION_BOTTOMLEFT) to read images in a more logical order and simplify code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 21:59:36 +00:00
Dimitri Schoolwerth
f2de33ede4 Fixed accessing out-of-bounds image coordinates while writing a black and white TIFF image.
The code assumed that the image's width is a multiple of 8, and attempted to always write per 8 pixels instead of sometimes having to write fewer pixels for the last column.

Also fixed compilo from previous commit due to not removing old code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 21:49:28 +00:00
Dimitri Schoolwerth
649df4bff8 Fixed calculated image pitch being off-by-one in some cases.
The variable linebytes sometimes counted one extra byte, which is OK for allocating but not when accessing the image later on. Calculate the value in a slightly different way and made the variable const.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 21:38:22 +00:00
Dimitri Schoolwerth
28b31a2ad2 Removed double TIFFSetField call for setting TIFFTAG_ORIENTATION.
Setting the same TIFF tag with the same value once is enough.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 21:31:59 +00:00
Dimitri Schoolwerth
c6973babc6 Call GetAlpha() to get a pointer instead of checking for alpha first.
It's safe to call GetAlpha() even if there's no alpha because in that case NULL will be returned.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-28 21:27:34 +00:00
Dimitri Schoolwerth
4ca8531f61 Added wxBITMAP_TYPE_TIFF and wxBITMAP_TYPE_TIFF_RESOURCE.
Having wxBITMAP_TYPE_TIFF and wxBITMAP_TYPE_TIFF_RESOURCE is more consistent with already using the complete short name of an image format elsewhere (e.g. wxBITMAP_TYPE_JPEG, not wxBTMAP_TYPE_JPG, and wxTIFFHandler as opposed to wxTIFHandler). Renamed all existing occurrences and kept the old enum values for backwards compatibility.

Also renamed occurrences of wxBITMAP_TYPE_RESOURCE to the already existing wxBITMAP_TYPE_BMP_RESOURCE.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-23 04:55:46 +00:00
Dimitri Schoolwerth
2453ceee20 Use a default photometric interpretation value of PHOTOMETRIC_MINISWHITE instead of PHOTOMETRIC_MINISBLACK for greyscale and b/w TIFF images.
Closes #13194.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 03:50:45 +00:00
Dimitri Schoolwerth
fc695138b4 Added option to TIFF handler for specifying the photometric interpretation.
Added option wxIMAGE_OPTION_TIFF_PHOTOMETRIC for reading and writing TIFF images. This is mostly for being able to distinguish between PHOTOMETRIC_MINISBLACK (chocolate flavour) and PHOTOMETRIC_MINISWHITE (vanilla) as currently the flavour used was fixed. It applies to greyscale as well as black and white images. Added unit tests to verify the written photometric value.

Also see #13194.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 03:47:40 +00:00
Dimitri Schoolwerth
8e28cc4701 Added support for saving greyscale TIFF images.
When saving with a samples per pixel value of 1 the TIFF handler still treated the image as RGB, resulting in corrupted images. Handle the greyscale case and added a unit test for it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 02:35:48 +00:00
Dimitri Schoolwerth
7f77b25ea8 Changed TIFF handler's monochrome conversion to look at the green channel instead of red.
It's common when reducing a coloured image to greyscale or black and white to give the green channel more significance. Since we're only looking at a single channel use the green one instead of red.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68783 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 02:27:11 +00:00
Dimitri Schoolwerth
0e11090ef6 Fixed crash when saving as a monochrome TIFF image with incomplete options set.
When setting only wxIMAGE_OPTION_TIFF_BITSPERSAMPLE to 1 the used samples per pixel (wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL) would still be set to 3. This is invalid and confuses libtiff, resulting in a crash ("possible heap corruption" during _TIFFfree using WinXP+MSVC8). Set the used samples per pixel to 1 explicitly in cases where only bits per sample is set to 1. Added a unit test to check for this problem (and verify the bits per sample from the saved image is indeed 1).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 02:00:25 +00:00
Dimitri Schoolwerth
096c930c16 No code changes.
Renamed variable bpp (bits per pixel) in TIFF handler to what it actually represents: bps (bits per sample).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 01:31:07 +00:00
Dimitri Schoolwerth
d65172db90 Renamed the options specific to the TIFF handler.
The loading/saving options that are specific for TIFF were in the form of wxIMAGE_OPTION_<name> while all other non-generic options use the form wxIMAGE_OPTION_<imagetype>_<name>. Renamed the TIFF options to the form wxIMAGE_OPTION_TIFF_<name> and kept the old names for backwards compatibility.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 01:19:21 +00:00
Dimitri Schoolwerth
7a10e465ca Improved saving of TIFF monochrome images.
When reducing an RGB image to black and white any non-black pixel was treated as white resulting in mostly white images. Set the threshold to 127 instead to improve the looks of saved monochrome TIFF images.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-19 01:08:36 +00:00
Dimitri Schoolwerth
7ffc9affb4 Fixed saving TIFF images to wxMemoryOutputStream.
Libtiff attempts to seek past the end of a stream and the behaviour for this can vary per stream implementation. Fixed failure to seek by filling the gap between the end of stream and new seek position with zeroes. Enabled a unit test which so far was disabled due to wxMemoryOutputStream failing to save a TIFF because of the seeking problem.

Also closes #4089.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68772 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-18 13:15:43 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Dimitri Schoolwerth
4d37f425ff Made some TIFF reading adjustments.
Read a few TIFF tags that assist with having a similar TIFF file when saving the image again, instead of (by default) always saving as a 24-bit RGB image. Also, in accordance with libtiff, allow reading X and Y resolution values even if the resolution unit tag is not set.

Applied (modified) patch by scottb. Closes #13015.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-20 19:48:03 +00:00
Dimitri Schoolwerth
3d59540f87 Improved detection of alpha channels in TIFF images.
Some TIFF images are not properly formed, for example having an extra channel marked as being unspecified data while they should be treated as being an alpha channel. Detect some of those cases so that these TIFF images now will have alpha.

Applied patch by gmeeker. Closes #12874.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-19 13:47:18 +00:00
Vadim Zeitlin
9c1f960fac Small bug fixes for GetLibraryVersionInfo() changes.
Fix the minor version determination for libtiff which was done wrongly by
r66259 and provide a properly formatted description for Scintilla version.

See #12690.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-26 13:31:07 +00:00
Vadim Zeitlin
ccec90930c Add wxVersionInfo and functions returning it for 3rd party libraries.
Add simple wxVersionInfo class holding the version information.

Also add GetLibraryVersionInfo() static method to wx{JPEG,PNG,TIFF}Handler,
wxStyledTextCtrl and wxXmlDocument classes and wxGetZlibVersionInfo() and
wxGetLibraryVersionInfo() global functions using it.

Closes #12690.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-25 00:53:44 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
af58844636 Add information about the log message generation location to wxLog.
This means that wxLog::DoLogRecord() can now retrieve the file name, line
number and the function where the message was logged.

An unfortunate consequence of this change is that now

	if ( condition )
		wxLogError("Whatever");

results in a warning from g++ 4.x with -Wparentehses, so extra parentheses had
to be added in many places.

Finally, also allow storing arbitrary attributes in wxLogRecordInfo. This had
to be added to implement our own overloaded wxLogStatus() and wxLogSysError()
and will probably be useful for the others as well.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-09 20:26:34 +00:00
Vadim Zeitlin
8f2a8de6e7 fix many mostly harmless warnings in wxOSX/Carbon build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-20 00:21:53 +00:00
Vadim Zeitlin
ca5882254e correct the fix for avoiding the integer multiplication overflow to really work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-04 22:28:48 +00:00
Vadim Zeitlin
5beedebb82 check for integer overflow which could result in buffer overrun when loading an invalid TIFF file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-02 13:51:26 +00:00
Francesco Montorsi
8faef7ccbc document that CanRead() and GetImageCount() functions of wxImageHandlers do NOT modify the current stream position and that they require seekable streams; rename current GetImageCount() functions to DoGetImageCount() and put save-and-restore stream position logic in GetImageCount(); add comments in the various DoCanRead() and in DoGetImageCount() where the stream position is modified; remove unneeded SeekI(0) calls from DoCanRead() and DoGetImageCount() functions: they didn't allow to load images from non-seekable streams; implement forward-seeking in wxInputStream::SeekI() also for non-seekable streams
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-01 11:43:36 +00:00
Vadim Zeitlin
ba4800d3ae add support for multiple extensions to wxImage handlers (closes #10570)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-09 23:13:34 +00:00
Václav Slavík
34deb5cdfe fixed error logging in TIFF image handler to output something useful regardless of the build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-17 09:34:28 +00:00
Vadim Zeitlin
426272a35e define wxTIFFHandler ctor in the .cpp file even if wxUSE_STREAMS==0 as it's declared in the header in this case (this doesn't really make much sense as the class is unusable anyhow but the other handlers do it like this so let's do the same thing here for consistency and maybe fix all of them at once later)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-28 00:08:27 +00:00
Chris Elliott
8df068caba another DMC build fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-26 19:12:10 +00:00
Vadim Zeitlin
ad91e1ade0 fix gcc warnings about float/double to int conversion after the latest changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-09 19:34:01 +00:00
Vadim Zeitlin
37ba70a520 added support for reading resolution information from TIFF, JPEG and BMP formats; corrected some bugs with saving resolution; added command allowing to see the image resolution (if available) to the sample (heavily modified patch 1790546)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-08 18:32:36 +00:00
Václav Slavík
b6ac40dc77 added support for loading images with alpha channel to TIFF handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-06 22:17:17 +00:00
Vadim Zeitlin
46f36538f1 call TIFF callbacks wxTIFFFooProc instead of _tiffFooProc to avoid potential conflicts; also there is no need to use reserved identifiers here
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-03 09:56:50 +00:00
Vadim Zeitlin
be0d315e66 close output stream when TIFFClose() is called
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-03 09:51:13 +00:00
Włodzimierz Skiba
02761f6cd4 Include wx/module.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-31 19:31:43 +00:00
Włodzimierz Skiba
0bca037363 Include wx/bitmap.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-14 10:02:19 +00:00
Włodzimierz Skiba
e7c80f9e05 wx/debug.h is always unconditionally included by wx/defs.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-24 15:13:23 +00:00
Włodzimierz Skiba
88a7a4e10e Include wx/intl.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-25 14:38:19 +00:00
Włodzimierz Skiba
8898456df4 wx/wxprec.h already includes wx/defs.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-18 07:24:35 +00:00
Vadim Zeitlin
f5e209857f don't use COMPRESSION_LZW by default, it's not implemented in our own libtiff (patch 1434275)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-04-17 01:54:10 +00:00
Włodzimierz Skiba
fc038829d5 wxMGL/Watcom linkage fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-01-10 16:52:02 +00:00
Michael Wetherell
4a10ea8b13 Warning fixes for win64
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-17 22:08:05 +00:00