imager.git
2 years agoinitialize a pointer to prevent coverity complaints
Tony Cook [Mon, 31 Dec 2018 10:49:51 +0000 (21:49 +1100)]
initialize a pointer to prevent coverity complaints

2 years agocoverity took the 6 elements in the argument as gospel
Tony Cook [Mon, 31 Dec 2018 10:44:42 +0000 (21:44 +1100)]
coverity took the 6 elements in the argument as gospel

2 years agofix potential memory leaks for failing mixing scaling on very large images
Tony Cook [Mon, 31 Dec 2018 10:34:38 +0000 (21:34 +1100)]
fix potential memory leaks for failing mixing scaling on very large images

2 years agofix double-free in TGA code
Tony Cook [Mon, 31 Dec 2018 10:25:19 +0000 (21:25 +1100)]
fix double-free in TGA code

2 years ago1.008 release v1.008
Tony Cook [Mon, 31 Dec 2018 09:52:15 +0000 (20:52 +1100)]
1.008 release

2 years agomove EXIF handling from the JPEG handler to core Imager
Tony Cook [Thu, 13 Dec 2018 00:15:10 +0000 (11:15 +1100)]
move EXIF handling from the JPEG handler to core Imager

and add it to the API.

The JPEG specific check was removed from the EXIF handling code
and inlined into the APP1 check in the JPEG decoder.

2 years agofix a dumb error in Imager::Probe
Tony Cook [Thu, 6 Dec 2018 09:50:52 +0000 (20:50 +1100)]
fix a dumb error in Imager::Probe

and add tests for loading Imager::Probe to reduce the chance of the
same problem happening again

2 years agoadd some more extensions, add add_type_extensions() class method
Tony Cook [Thu, 6 Dec 2018 09:43:18 +0000 (20:43 +1100)]
add some more extensions, add add_type_extensions() class method

2 years agosupport libbase as an arrayref for fake probing
Tony Cook [Thu, 6 Dec 2018 09:08:49 +0000 (20:08 +1100)]
support libbase as an arrayref for fake probing

2 years agoignore dist archives
Tony Cook [Sun, 2 Dec 2018 22:24:29 +0000 (09:24 +1100)]
ignore dist archives

2 years ago1.007 release v1.007
Tony Cook [Sat, 24 Nov 2018 01:45:15 +0000 (12:45 +1100)]
1.007 release

2 years agoupdate / correct PNG Changes file
Tony Cook [Sat, 24 Nov 2018 01:40:49 +0000 (12:40 +1100)]
update / correct PNG Changes file

2 years agodocument polygon() change
Tony Cook [Sat, 24 Nov 2018 01:33:50 +0000 (12:33 +1100)]
document polygon() change

2 years agoimprove error reporting for the polygon method
Tony Cook [Sat, 24 Nov 2018 01:32:41 +0000 (12:32 +1100)]
improve error reporting for the polygon method

2 years agoadd probe support for FLIF files
Tony Cook [Fri, 23 Nov 2018 00:14:43 +0000 (11:14 +1100)]
add probe support for FLIF files

(this doesn't add support for the file format, just detection of
the file's "magic number")

2 years agonote metadata changes
Tony Cook [Mon, 5 Nov 2018 10:50:11 +0000 (21:50 +1100)]
note metadata changes

2 years agoadd changes since 1.006
Tony Cook [Sat, 3 Nov 2018 05:31:27 +0000 (16:31 +1100)]
add changes since 1.006

2 years agofix some old Changes typos
Tony Cook [Sat, 3 Nov 2018 05:31:12 +0000 (16:31 +1100)]
fix some old Changes typos

2 years agoadding missing 1.006 Changes header
Tony Cook [Sat, 3 Nov 2018 05:30:50 +0000 (16:30 +1100)]
adding missing 1.006 Changes header

2 years agofix error handling in i_polygon() for non-polygon polygons
Tony Cook [Sat, 3 Nov 2018 05:30:27 +0000 (16:30 +1100)]
fix error handling in i_polygon() for non-polygon polygons

2 years agoimprove all Makefile.PLs
Tony Cook [Sat, 3 Nov 2018 03:59:27 +0000 (14:59 +1100)]
improve all Makefile.PLs

3 years agoUpdate metadata to meta-spec 2, include web view of repository, correct EUMM version...
Dan Book [Wed, 26 Sep 2018 21:27:00 +0000 (17:27 -0400)]
Update metadata to meta-spec 2, include web view of repository, correct EUMM version checks

3 years agomake it clear that noalpha doesn't compose
Tony Cook [Fri, 7 Sep 2018 04:08:03 +0000 (14:08 +1000)]
make it clear that noalpha doesn't compose

3 years agofix a typo (after almost "braking" it a different way)
Tony Cook [Tue, 5 Jun 2018 00:00:23 +0000 (10:00 +1000)]
fix a typo (after almost "braking" it a different way)

yay homonyms

3 years agoadd png_compression_level parameter for writing PNG files
Tony Cook [Mon, 4 Jun 2018 09:38:57 +0000 (19:38 +1000)]
add png_compression_level parameter for writing PNG files

3 years ago(rt #124001) avoid flooring a second time in matrix transform interpolation
Tony Cook [Fri, 5 Jan 2018 11:09:46 +0000 (22:09 +1100)]
(rt #124001) avoid flooring a second time in matrix transform interpolation

The linear interpolation done by matrix_transform_bg() (also called
when rotating images) called floor() on the ordinate both in the
caller and in the interpolation code, which seemed to confuse the compiler
supplied with the gcc supplied with 32-bit strawberry perl 5.26.0.

I suspect a value just barely below an integer was being stored in the
FPU and then rounded up to that integer when converted to a double,
which then caused an off-by-one error in interpolation.

4 years ago1.006 release v1.006
Tony Cook [Sat, 26 Aug 2017 04:18:49 +0000 (14:18 +1000)]
1.006 release

4 years agoupdate Changes
Tony Cook [Sat, 26 Aug 2017 04:16:18 +0000 (14:16 +1000)]
update Changes

4 years ago[perl #131938] allocate stack space for results in i_errors()
Tony Cook [Sat, 26 Aug 2017 03:54:38 +0000 (13:54 +1000)]
[perl #131938] allocate stack space for results in i_errors()

5 years agore-work color tests to use Imager::Test functions where possible
Tony Cook [Thu, 22 Sep 2016 01:24:34 +0000 (11:24 +1000)]
re-work color tests to use Imager::Test functions where possible

5 years agoupdate Changes
Tony Cook [Mon, 19 Sep 2016 04:12:14 +0000 (14:12 +1000)]
update Changes

5 years agoRT #117878: handle invalid image objects for write_multi()
Tony Cook [Mon, 19 Sep 2016 04:08:35 +0000 (14:08 +1000)]
RT #117878: handle invalid image objects for write_multi()

write_multi() now returns an error result instead of crashing
if called with a string scalar, an unblessed reference or a
reference to non-Imager object.

5 years agoCVE-2016-1238 mitigation
Tony Cook [Thu, 15 Sep 2016 00:28:09 +0000 (10:28 +1000)]
CVE-2016-1238 mitigation

ensure the default . is removed from @INC when attempting to load
optional modules:

  - file format modules loaded by read(), write() etc and the
    %formats tie code
  - Affix::Infix2Postfix loaded by transform()
  - Parse::RecDescent loaded by Imager::Expr

5 years agomake the jpegquality docs clearer
Tony Cook [Tue, 10 May 2016 00:44:44 +0000 (10:44 +1000)]
make the jpegquality docs clearer

5 years ago1.005 release v1.005
Tony Cook [Fri, 15 Apr 2016 23:59:39 +0000 (09:59 +1000)]
1.005 release

5 years agoupdate Changes
Tony Cook [Fri, 15 Apr 2016 23:51:55 +0000 (09:51 +1000)]
update Changes

5 years agoRevert the ivdformat probing
Tony Cook [Fri, 15 Apr 2016 23:35:13 +0000 (09:35 +1000)]
Revert the ivdformat probing

Devel::CheckLib isn't really capable of probing standard library
functions - it wants a library name to probe for and the standard
library functions aren't always loaded from something called
"libc.ext".

Due to the structure of Devel::CheckLib if you don't provide a library
name to probe for the running code checks are skipped entirely,
passing by default.

So remove this for now.

I have a work-in-progress branch with a modified Devel::CheckLib, but
since I push Devel::CheckLib changes out to the JPEG, TIFF, etc dists
it would mean meaningless new releases for those too.  Meaningless
because the changes to D::CL would have no effect on them beyond a
version bump.

5 years agoImager 1.004_004 v1.004_004
Tony Cook [Fri, 15 Apr 2016 05:56:21 +0000 (15:56 +1000)]
Imager 1.004_004

5 years agoupdate Changes
Tony Cook [Fri, 15 Apr 2016 05:52:20 +0000 (15:52 +1000)]
update Changes

5 years agotry probing for a valid ivdformat if the %Config value is bad
Tony Cook [Fri, 15 Apr 2016 05:48:13 +0000 (15:48 +1000)]
try probing for a valid ivdformat if the %Config value is bad

5 years agoprobe to check if $Config{ivdformat} is correct for the built-in sprintf
Tony Cook [Fri, 15 Apr 2016 05:35:29 +0000 (15:35 +1000)]
probe to check if $Config{ivdformat} is correct for the built-in sprintf

5 years agominor fix to pod
Tony Cook [Fri, 15 Apr 2016 04:48:50 +0000 (14:48 +1000)]
minor fix to pod

5 years agodump a bit more of the file broken on the strange win32 tester
Tony Cook [Tue, 5 Apr 2016 10:57:18 +0000 (20:57 +1000)]
dump a bit more of the file broken on the strange win32 tester

5 years ago1.004_003 release v1.004_003
Tony Cook [Wed, 23 Mar 2016 09:33:02 +0000 (20:33 +1100)]
1.004_003 release

5 years agoupdate Changes
Tony Cook [Wed, 23 Mar 2016 09:30:55 +0000 (20:30 +1100)]
update Changes

5 years agoadd some extra error reporting to I/O layer tests
Tony Cook [Wed, 23 Mar 2016 09:29:42 +0000 (20:29 +1100)]
add some extra error reporting to I/O layer tests

This might catch a failure seen on Win32.

http://cpantesters.org/cpan/report/99781689-6bf5-1014-897a-75cb4eee1325

5 years ago1.004_002 release v1.004_002
Tony Cook [Sun, 20 Mar 2016 01:25:52 +0000 (12:25 +1100)]
1.004_002 release

5 years agoupdate Changes
Tony Cook [Sun, 20 Mar 2016 01:22:27 +0000 (12:22 +1100)]
update Changes

5 years agoadd write failure diagnostics for 250-draw/010-draw.t
Tony Cook [Thu, 17 Mar 2016 09:07:22 +0000 (20:07 +1100)]
add write failure diagnostics for 250-draw/010-draw.t

This is failing on BiNGOs Solaris smoker, eg:

http://cpantesters.org/cpan/report/417ab3e8-b51f-11e5-895c-94abaef69d38

5 years agosupport older perls
Tony Cook [Thu, 17 Mar 2016 08:52:58 +0000 (19:52 +1100)]
support older perls

older perls bless handles into IO::Handle, which doesn't have a seek()
method

5 years ago1.004_001 release v1.004_001
Tony Cook [Wed, 16 Mar 2016 08:33:17 +0000 (19:33 +1100)]
1.004_001 release

5 years agosimple threading image creation/destruction test
Tony Cook [Wed, 16 Mar 2016 08:28:17 +0000 (19:28 +1100)]
simple threading image creation/destruction test

5 years agoupdate Changes
Tony Cook [Wed, 16 Mar 2016 08:27:56 +0000 (19:27 +1100)]
update Changes

5 years agoextract include paths from gcc if we can
Tony Cook [Tue, 15 Mar 2016 08:06:26 +0000 (19:06 +1100)]
extract include paths from gcc if we can

5 years agofix a memory leak when failing to write a 2 color icon image
Tony Cook [Wed, 9 Mar 2016 10:06:51 +0000 (21:06 +1100)]
fix a memory leak when failing to write a 2 color icon image

5 years agofix a context object reference leak from upgrading a paletted image
Tony Cook [Wed, 9 Mar 2016 10:05:50 +0000 (21:05 +1100)]
fix a context object reference leak from upgrading a paletted image

The internal process of upgrading a paletted image to a direct image,
done when a color not in the palette is written to the image, no
long leaks a reference count to the context object.

5 years agoclean up gif writing error handling (and fix a leak)
Tony Cook [Wed, 9 Mar 2016 10:03:52 +0000 (21:03 +1100)]
clean up gif writing error handling (and fix a leak)

doesn't fix a memory leak in giflib 4.x, which I can't do anything
about.

5 years agono longer deliberately leak the first context object
Tony Cook [Wed, 9 Mar 2016 10:02:15 +0000 (21:02 +1100)]
no longer deliberately leak the first context object

Previously Imager would deliberately leak the context object from
the start thread to ensure there was always at least one context
object available.

Modified the log code to handle there being no context object.

5 years agofix i_nearest_color() for threaded builds
Tony Cook [Wed, 9 Mar 2016 09:59:03 +0000 (20:59 +1100)]
fix i_nearest_color() for threaded builds

5 years agoupdate Changes some more
Tony Cook [Mon, 29 Feb 2016 11:19:06 +0000 (22:19 +1100)]
update Changes some more

5 years agoavoid uninitialized value warnings in the FT2 driver
Tony Cook [Tue, 23 Feb 2016 11:01:57 +0000 (22:01 +1100)]
avoid uninitialized value warnings in the FT2 driver

The values were only logged, but let's silence valgrind

5 years agomore nearest_color leaks
Tony Cook [Tue, 23 Feb 2016 11:00:46 +0000 (22:00 +1100)]
more nearest_color leaks

5 years agoset pixels with no coverage to all zero
Tony Cook [Tue, 23 Feb 2016 11:00:08 +0000 (22:00 +1100)]
set pixels with no coverage to all zero

valgrind complained about use of uninitialized values

5 years agofix documentation of i_gpix_d (internal)
Tony Cook [Tue, 23 Feb 2016 10:59:01 +0000 (21:59 +1100)]
fix documentation of i_gpix_d (internal)

5 years agoFT1 font driver: leaked buffer if it failed to open a font
Tony Cook [Tue, 23 Feb 2016 10:58:32 +0000 (21:58 +1100)]
FT1 font driver: leaked buffer if it failed to open a font

5 years agonearest_color filter: was leaking malloc()ed buffers
Tony Cook [Tue, 23 Feb 2016 10:57:54 +0000 (21:57 +1100)]
nearest_color filter: was leaking malloc()ed buffers

5 years agocombine() - was leaking malloc()ed row buffers
Tony Cook [Tue, 23 Feb 2016 10:57:21 +0000 (21:57 +1100)]
combine() - was leaking malloc()ed row buffers

5 years agogetcolorusage() leaked in i_get_anonymous_color_histo() on too many colors
Tony Cook [Sun, 21 Feb 2016 02:31:16 +0000 (13:31 +1100)]
getcolorusage() leaked in i_get_anonymous_color_histo() on too many colors

i_get_anonymous_color_histo() leaked the sample buffer.

5 years agogetcolorcount() leaked in i_count_colors() on too many colors
Tony Cook [Sun, 21 Feb 2016 02:29:18 +0000 (13:29 +1100)]
getcolorcount() leaked in i_count_colors() on too many colors

The sample array was leaked when the number of colors in the image
exceeded the supplied limit.

5 years agoremove a leak in make_palette()
Tony Cook [Sun, 21 Feb 2016 02:28:03 +0000 (13:28 +1100)]
remove a leak in make_palette()

The XS leaked the temp image array (not the images themselves) used
to pass the images to i_quant_makemap()

5 years agore-work malloc_temp(), calloc_temp() to avoid SV overhead
Tony Cook [Sun, 21 Feb 2016 01:17:05 +0000 (12:17 +1100)]
re-work malloc_temp(), calloc_temp() to avoid SV overhead

Previosly they created a temp SV and returned it's buffer.  Now they
just call Newx() or Newxz() and SAVEFREEPV() the result.

5 years agoupdate Changes
Tony Cook [Sun, 21 Feb 2016 01:08:41 +0000 (12:08 +1100)]
update Changes

5 years agoadd a missing attribution for #106836
Tony Cook [Sun, 21 Feb 2016 00:46:05 +0000 (11:46 +1100)]
add a missing attribution for #106836

5 years ago[rt #111871] re-work autolevels
Tony Cook [Sun, 21 Feb 2016 00:45:43 +0000 (11:45 +1100)]
[rt #111871] re-work autolevels

- avoid an off-by-one error when calculating the minimum and maximum
  levels from the histogram

- optimize 8-bit images by using a lookup table instead of doing
  a floating point multiply for each sample

5 years agoallow imcover to use a non-default perl
Tony Cook [Tue, 16 Feb 2016 09:30:35 +0000 (20:30 +1100)]
allow imcover to use a non-default perl

5 years agoimcover.perl: add an option to just regen coverage
Tony Cook [Sat, 13 Feb 2016 02:19:39 +0000 (13:19 +1100)]
imcover.perl: add an option to just regen coverage

5 years agofix Imager::Color->new(channels => []) with a short array
Tony Cook [Sat, 13 Feb 2016 02:07:42 +0000 (13:07 +1100)]
fix Imager::Color->new(channels => []) with a short array

Previously this would fail.

5 years agoavoid leaking memory in addcolors()
Tony Cook [Tue, 16 Feb 2016 09:30:14 +0000 (20:30 +1100)]
avoid leaking memory in addcolors()

5 years agofix scaling of samples for autolevels_mono
Tony Cook [Mon, 8 Feb 2016 08:29:04 +0000 (19:29 +1100)]
fix scaling of samples for autolevels_mono

5 years agowe no longer try to deal with buggy giflibs
Tony Cook [Tue, 26 Jan 2016 09:54:04 +0000 (20:54 +1100)]
we no longer try to deal with buggy giflibs

5 years agomodernize t/200-file/400-basic.t and handle fails correctly
Tony Cook [Tue, 26 Jan 2016 09:34:53 +0000 (20:34 +1100)]
modernize t/200-file/400-basic.t and handle fails correctly

Previously the custom ok() would mis-handle errors, because it called
methods in list context, which on failure could treat the note for the
test as the result and pass.

This typically resulted in crashes later in the code, see

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812093

for an example.

5 years ago1.004 release v1.004
Tony Cook [Sun, 8 Nov 2015 09:44:24 +0000 (20:44 +1100)]
1.004 release

5 years agonote that new() accepts an io parameter
Tony Cook [Sun, 8 Nov 2015 09:16:32 +0000 (20:16 +1100)]
note that new() accepts an io parameter

5 years agomore Changes
Tony Cook [Sun, 8 Nov 2015 00:16:58 +0000 (11:16 +1100)]
more Changes

5 years agoImager->new now attempts to read a file given any data source
Tony Cook [Sun, 8 Nov 2015 00:09:42 +0000 (11:09 +1100)]
Imager->new now attempts to read a file given any data source

Previously, attempting to read a raw image would simply return a blank
image, since the xsize and ysize parameters are required when reading
a raw image, and new() checked only those parameters to decide to
return a blank image.

5 years agoupdate Changes
Tony Cook [Wed, 4 Nov 2015 11:11:44 +0000 (22:11 +1100)]
update Changes

5 years agofix indentation
Tony Cook [Wed, 4 Nov 2015 11:06:13 +0000 (22:06 +1100)]
fix indentation

5 years agoRT #107900 Panic due to attempt to extend stack by negative amount
A. Sinan Unur [Wed, 21 Oct 2015 19:41:24 +0000 (15:41 -0400)]
RT #107900 Panic due to attempt to extend stack by negative amount

See https://rt.cpan.org/Public/Bug/Display.html?id=107900

See also

http://www.cpantesters.org/distro/I/Imager.html#Imager-1.003?grade=1&perlmat=3&patches=2&oncpan=2&distmat=2&perlver=5.23.4&osname=ALL&version=1.003

Fix by only EXTENDing return stack and pushing values if returned
col_cnt is positive.

6 years agoavoid a warning during testing on 5.22+
Tony Cook [Thu, 29 Oct 2015 23:33:54 +0000 (10:33 +1100)]
avoid a warning during testing on 5.22+

the code puts a file handle into an error state, which confuses the
new diagnostic that triggers when we fail to close a handle implicitly

6 years agoadd a test for the preload method
Tony Cook [Thu, 29 Oct 2015 23:32:49 +0000 (10:32 +1100)]
add a test for the preload method

6 years ago[rt #104896] add Imager::Color::Table to preload
Tony Cook [Thu, 29 Oct 2015 22:44:56 +0000 (09:44 +1100)]
[rt #104896] add Imager::Color::Table to preload

6 years agomark a url so none of it is spell checked
Tony Cook [Thu, 27 Aug 2015 12:27:20 +0000 (22:27 +1000)]
mark a url so none of it is spell checked

6 years agoupdate for a more current Pod::Spell, including a possible bug
Tony Cook [Thu, 27 Aug 2015 12:26:57 +0000 (22:26 +1000)]
update for a more current Pod::Spell, including a possible bug

6 years ago1.003 release v1.003
Tony Cook [Tue, 12 May 2015 08:09:17 +0000 (18:09 +1000)]
1.003 release

6 years agochanges updates
Tony Cook [Tue, 12 May 2015 08:03:32 +0000 (18:03 +1000)]
changes updates

6 years agomore flood_fill tests
Tony Cook [Sat, 9 May 2015 03:19:03 +0000 (13:19 +1000)]
more flood_fill tests

6 years agoadd a few extra flood fill tests
Tony Cook [Sun, 26 Apr 2015 03:42:25 +0000 (13:42 +1000)]
add a few extra flood fill tests

6 years ago[rt #103786] prevent fills crossing 4-connected boundaries
Tony Cook [Sun, 26 Apr 2015 03:38:21 +0000 (13:38 +1000)]
[rt #103786] prevent fills crossing 4-connected boundaries

fixed an off-by-one error inherited from the original pseudo-code

6 years ago1.002 release v1.002
Tony Cook [Fri, 3 Apr 2015 01:13:24 +0000 (12:13 +1100)]
1.002 release

6 years agowe don't need to bump API level twice in the same release
Tony Cook [Thu, 26 Mar 2015 06:03:17 +0000 (17:03 +1100)]
we don't need to bump API level twice in the same release