imager.git
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.

5 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

5 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

5 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

5 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

5 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

6 years agomore types documentation for the API
Tony Cook [Thu, 26 Mar 2015 06:01:08 +0000 (17:01 +1100)]
more types documentation for the API

6 years agochange note for colormodel() etc
Tony Cook [Thu, 26 Mar 2015 04:47:24 +0000 (15:47 +1100)]
change note for colormodel() etc

6 years agoadd colorchannels(), alphachannel() and colormodel() methods
Tony Cook [Thu, 26 Mar 2015 04:36:49 +0000 (15:36 +1100)]
add colorchannels(), alphachannel() and colormodel() methods

also add model parameter to Imager->new()

6 years agozero unfilled channels in color returned by getpixel()
Tony Cook [Fri, 30 Jan 2015 22:57:24 +0000 (09:57 +1100)]
zero unfilled channels in color returned by getpixel()

6 years agoupdate Changes with circles and polypolys
Tony Cook [Sun, 25 Jan 2015 09:56:10 +0000 (20:56 +1100)]
update Changes with circles and polypolys

6 years agoimproved polygon support
Tony Cook [Sun, 25 Jan 2015 09:51:46 +0000 (20:51 +1100)]
improved polygon support

6 years agopolygon documentation
Tony Cook [Sat, 6 Sep 2014 00:17:44 +0000 (10:17 +1000)]
polygon documentation

6 years agobump IMAGER_API_LEVEL since I added APIs
Tony Cook [Sat, 6 Sep 2014 00:17:23 +0000 (10:17 +1000)]
bump IMAGER_API_LEVEL since I added APIs

6 years agoaccess to poly_poly from perl as polypolygon()
Tony Cook [Wed, 23 Apr 2014 12:34:44 +0000 (22:34 +1000)]
access to poly_poly from perl as polypolygon()

6 years agodon't match against horizontal lines
Tony Cook [Mon, 27 Jan 2014 10:57:59 +0000 (21:57 +1100)]
don't match against horizontal lines

6 years agoC level support for filling multiple polygons in one call
Tony Cook [Fri, 24 Jan 2014 10:47:08 +0000 (21:47 +1100)]
C level support for filling multiple polygons in one call

6 years ago[perl #101682] define i_circle_aa_fill() and use it circle
Tony Cook [Sat, 24 Jan 2015 03:08:40 +0000 (14:08 +1100)]
[perl #101682] define i_circle_aa_fill() and use it

speeds up smaller circle fills considerably, larger circles are
dominated by fill time rather than calculation so lose out

6 years ago[perl #101682] speed up color filled circle calculations
Tony Cook [Fri, 23 Jan 2015 12:29:37 +0000 (23:29 +1100)]
[perl #101682] speed up color filled circle calculations

replaces a very inefficient mechanism calculating many sin()/cos() values
with a faster mechanism

It might be possible to replace this with a Bresenham's circle
algorithm, but one step at a time.

6 years ago1.001 release v1.001
Tony Cook [Thu, 1 Jan 2015 22:13:46 +0000 (09:13 +1100)]
1.001 release

6 years agomake sure the Mandelbrot and Flines filters are built
Tony Cook [Thu, 1 Jan 2015 22:49:49 +0000 (09:49 +1100)]
make sure the Mandelbrot and Flines filters are built

6 years agoDevel::CheckLib: handle the gcc-4 symlink on Cygwin
Tony Cook [Thu, 25 Dec 2014 05:38:00 +0000 (16:38 +1100)]
Devel::CheckLib: handle the gcc-4 symlink on Cygwin

6 years agoupdate Changes for the FT1 and --enable/disable fixes
Tony Cook [Sat, 6 Dec 2014 00:03:44 +0000 (11:03 +1100)]
update Changes for the FT1 and --enable/disable fixes