Commit Graph

517 Commits

Author SHA1 Message Date
homm
1ba4e9e5ba remove end of file banner from all files 2016-07-10 14:11:28 +03:00
homm
66715246c1 remove mitchell filter. Has no advantages over bicubic 2016-07-02 01:54:39 +03:00
homm
a67e5453d5 add tests, fix errors ) 2016-07-02 01:54:39 +03:00
homm
c3d702538d add BOX, HAMMING, MITCHELL filters to resample.c 2016-07-02 01:54:39 +03:00
homm
0e9beed76d add constants for filters: BOX, HAMMING, MITCHELL
rearrange filters everywhere
2016-07-02 01:54:39 +03:00
Andrew Murray
ebf2121338 Removed trailing whitespace 2016-07-01 22:05:18 +10:00
Christoph Gohlke
525ba37722 Fix msvc9/10 compile error 2016-06-30 14:04:53 -07:00
Andrew Murray
5e5bda95e0 Removed trailing whitespace 2016-06-30 20:12:50 +01:00
Alexander Karpinsky
92660a1a05 Merge pull request #1986 from didrix/fix-1979-p2la
Fix issue converting P mode to LA
2016-06-30 17:43:53 +04:00
wiredfool
a5dde79068 Merge pull request #1934 from wiredfool/incremental_removal
Rewrite of Jpeg2k data handling
2016-06-30 12:28:10 +01:00
wiredfool
291c00c58a Merge pull request #1954 from uploadcare/skip-resampling-passes
Do not do unnecessary passes on resizing
2016-06-30 12:23:07 +01:00
wiredfool
b152d99d66 refactor to different file 2016-06-27 00:58:06 -07:00
wiredfool
857ee63436 cleanup unused variables 2016-06-27 00:58:06 -07:00
wiredfool
96907b9158 Comments 2016-06-27 00:58:06 -07:00
wiredfool
d3b0413780 Initial take for removing the Incremental decoder due to threading issues. J2k tests pass, other tests fail 2016-06-27 00:58:05 -07:00
Diederik Veeze
ca69de192b Assign to unused layers as well, jtbs 2016-06-26 13:23:53 +02:00
Diederik Veeze
12685ef7c1 Convert P to LA without deforming image 2016-06-25 23:14:21 +02:00
wiredfool
bdd0a6a4e4 Merge pull request #1781 from wiredfool/malloc_check
Integer overflow checks on malloc
2016-06-21 12:09:19 +01:00
wiredfool
95f464f827 removed redundant check 2016-06-16 01:09:38 -07:00
wiredfool
8aedf8b1d8 added comment closer to malloc 2016-06-16 01:07:28 -07:00
wiredfool
ce57e6adfb We're not actually multiplying out the bytes, only the indexes 2016-06-16 01:06:28 -07:00
wiredfool
d0ae5bc75e added check to prevent arcs > 360 degrees 2016-06-16 01:05:41 -07:00
homm
78fad0f819 Do not make unnecessary passes on resizing 2016-06-15 01:04:02 +03:00
wiredfool
92a13d975d Malloc check merge/rebase 2016-06-08 06:25:46 -07:00
wiredfool
76605634e6 MSVC doesn't define UINT32_MAX 2016-06-08 06:25:46 -07:00
wiredfool
5369d8edd7 Replace SIZE_MAX with type specific _MAX 2016-06-08 06:21:38 -07:00
wiredfool
54a979749c Rework block allocator 2016-06-08 06:21:38 -07:00
wiredfool
768936fa33 overflow check for im->linesize 2016-06-08 06:21:38 -07:00
wiredfool
d48e5cd500 Convert xsize/ysize to ints in function declarations to match all other uses of xsize/ysize 2016-06-08 06:21:38 -07:00
wiredfool
49566b287e added cleanup to free dictionary memory in ZipEncode, fixes old comment about leaking memory from prior to when we had the cleanup mechanisim 2016-06-08 06:21:38 -07:00
wiredfool
4b4ef5f1e2 Malloc check, realloc, #1715 2016-06-08 06:21:38 -07:00
wiredfool
52d60cd096 Malloc check, #1715 2016-06-08 06:21:38 -07:00
wiredfool
b1a190ad78 mixed 8c tabs+spaces -> spaces 2016-06-08 06:21:38 -07:00
homm
3d622d60cf make perspecive transform arguments order more common 2016-06-08 16:17:41 +03:00
homm
2b77b1cec7 make affine transform arguments order more common 2016-06-08 16:17:41 +03:00
homm
4cfc791a5b remove unused filter_data 2016-06-08 16:17:41 +03:00
homm
bc51928171 move ImagingCopyInfo after affine_fixed 2016-06-08 16:17:41 +03:00
homm
9902d2e1c5 move transform dispatcher into libImaging 2016-06-08 16:17:41 +03:00
homm
2e914af758 unused 2016-06-08 16:17:41 +03:00
homm
6be3df2a43 remove internal ImagingTransform from headers
rename to ImagingGenericTransform
2016-06-08 16:17:41 +03:00
homm
1f8c2527ba internal rotating functions not used anymore 2016-06-08 16:17:41 +03:00
homm
3fa3b48ae9 ImagingTransposeToNew not used anymore 2016-06-08 16:17:41 +03:00
homm
e5b2cbe4ad undef local defines
add section cookie for affine_fixed
2016-06-08 16:17:41 +03:00
homm
a18325afe1 remove WITH_FILTERS 2016-06-08 16:17:41 +03:00
wiredfool
62551a8b49 Merge pull request #1933 from uploadcare/resample-vertical-pass
Resample horizontal + vertical pass
2016-06-08 14:14:41 +01:00
homm
12c8cf94f2 replace calloc with remaining values emptying 2016-06-08 03:45:08 +03:00
homm
3b7923c09f add calloc explanation 2016-06-03 12:51:58 +03:00
homm
34afabbf18 return malloc where clearing is not required 2016-05-28 10:47:07 +03:00
homm
4ea0c83450 do not rotate image between passes 2016-05-27 07:24:22 +03:00
homm
c051f1d79d ImagingResampleVertical_32bpc implementation 2016-05-27 07:21:34 +03:00
homm
5cd8c35c82 complete ImagingResampleVertical_8bpc implementation 2016-05-27 07:12:01 +03:00
homm
8180b0f4c3 ResampleVertical first implementation 2016-05-27 06:52:19 +03:00
homm
edc9880b61 accept RGBa and La modes for blur 2016-05-27 03:16:48 +03:00
wiredfool
3657bc10a6 Merge pull request #1889 from rr-/libpngquant
Add libimagequant support in quantize()
2016-05-26 21:12:25 +01:00
homm
b56d8f3f1f speedup La -> LA conversion in most cases 2016-05-26 15:22:01 +03:00
homm
d1272b9b8a speedup RGBa -> RGBA conversion in most cases 2016-05-26 15:15:08 +03:00
homm
c4b92d09b7 support for La mode 2016-05-26 15:15:08 +03:00
homm
5ffd9e53bc use calloc and INT_MAX 2016-05-26 02:28:35 +03:00
homm
1c3def1d5a return malloc 2016-05-26 02:07:56 +03:00
homm
eec17c0c7a change xmax meaning to avoid substructions 2016-05-26 02:07:56 +03:00
homm
7722d00daf simpler coefficients calculation in ImagingResampleHorizontal_8bpc 2016-05-26 02:07:56 +03:00
homm
d3749ccc7c possible increase precision and avoid compiler warnings 2016-05-26 02:07:56 +03:00
homm
f44a7f8b11 implement round
fix windows build
2016-05-26 02:07:56 +03:00
homm
babaaf9bbe raise on special cases even if imIn->image8 2016-05-26 02:07:56 +03:00
homm
d48324bd21 unroll 8bpc version 2016-05-26 02:07:56 +03:00
homm
126c3151b5 use ImagingPrecompute in ImagingResampleHorizontal_8bpc 2016-05-26 02:07:56 +03:00
homm
f3f03bcd67 unroll 32bpc version 2016-05-26 02:07:56 +03:00
homm
04552b015d use ImagingPrecompute in ImagingResampleHorizontal_32bpc 2016-05-26 02:07:56 +03:00
homm
023f7adcf6 precompute function 2016-05-26 02:07:56 +03:00
homm
7693da9287 separate 8 and 32 bpc implementations 2016-05-26 02:07:56 +03:00
homm
9618ec98b8 test for consistency 2016-05-26 02:07:56 +03:00
homm
e13297b396 make coefficients ints 2016-05-26 02:07:03 +03:00
homm
342e6f213b extra line 2016-05-26 02:07:03 +03:00
homm
3ee407e859 pass struct filter to ImagingResampleHorizontal 2016-05-26 02:07:03 +03:00
homm
0e2a8e4323 intermediate not normalized buffer for coefficients 2016-05-26 02:07:03 +03:00
homm
a5b99dd302 move checks before mallocs to prevent memory leaks 2016-05-26 02:07:03 +03:00
Stephen Arthur
0bc4423487 Move the declaration to the beginning of scope to make vs happy 2016-05-22 19:13:19 -07:00
Stephen Arthur
67a243d82d Removing the one-line variable declare / assign to make appveyor happy 2016-05-22 18:50:42 -07:00
Stephen Arthur
8b572ade81 Found edge cases with custom qtables
And there was a lingering bug since the previous qtable unsigned char fix
(#1814) since the call to array.array was in another place, the roundtrip was no
longer equivalent.

That was a minor change, but the revised test wouldn't pass because saving an image
with one custom qtable automatically adds a second to it by the call to
jpeg_set_defaults.
With 1 or >2 custom tables, there is extra work we have to do due to that call.
2016-05-22 17:54:31 -07:00
rr-
0430a4a834 Fix libimagequant facade header 2016-05-21 21:11:54 +02:00
rr-
bc0e896b35 Change libimagequant facade signature 2016-05-21 21:01:57 +02:00
rr-
8b7fb44c6b Make libimagequant visibility detectable 2016-05-06 21:06:54 +02:00
rr-
0b4a089321 Fix C99 errors inside libimagequant quantizer 2016-05-06 20:08:35 +02:00
rr-
cb4ded4929 Minor fixes 2016-05-06 19:29:42 +02:00
rr-
eb354be7c4 Add method=Image.LIBIMAGEQUANT for quantize() 2016-05-05 21:39:16 +02:00
wiredfool
faeb269e30 Revert "Fix for DIB/BMP images" 2016-04-19 16:37:29 +01:00
Hugo
a7c678b1af Merge pull request #1813 from wiredfool/DIB_1293
Fix for DIB/BMP images
2016-04-06 19:58:25 +03:00
wiredfool
0e3caec317 Added Transparency mask unpacker for BMP files 2016-04-06 07:40:49 -07:00
wiredfool
14f3b45f46 Merge pull request #1789 from zwhfly/tiff
Add Support for 2/4 bpp Tiff Grayscale Images
2016-04-03 12:07:48 -07:00
wiredfool
a1f244343d Fixed j2k integer overflow error on encode - CVE-2016-3076 2016-04-01 05:11:54 -07:00
zwhfly
4d147c16d3 Add Some Unpackers for 2/4 bpp Grayscale Format
As seen in some tiff image files.
2016-03-29 20:17:39 +08:00
Andrew Murray
a7c7aa171d Updated redirected URLs 2016-02-11 18:51:36 +11:00
Eric Soroos
07a42363c4 change ifd entry to use uint following libtiff interface 2016-02-04 08:13:17 -08:00
Eric Soroos
717720b051 Fix for buffer overflow in TiffDecode.c CVE-2016-0740 2016-02-04 08:13:11 -08:00
wiredfool
893a40850c FLI overflow error fix and testcase CVE-2016-0775 2016-02-04 08:13:02 -08:00
wiredfool
1723dc2d07 Merge pull request #1714 from wiredfool/resample-overflow
Overflow in resample.c, with tests
2016-02-04 07:52:59 -08:00
Ned Williamson
4e0d9b0b97 fix integer overflow in Resample.c 2016-02-04 07:19:54 -08:00
wiredfool
ae453aa18b PCD decoder overruns the shuffle buffer, Fixes #568 2016-02-02 05:46:26 -08:00
Andrew Murray
8f9b3a7372 Changed arcs, chords and pie slices to use floats 2015-12-09 00:28:52 +11:00
Andrew Murray
9a2903bf5b Changed 32 bit to 32-bit and 64 bit to 64-bit 2015-10-15 00:49:03 +11:00
Hugo van Kemenade
00615df3b5 Merge pull request #1487 from radarhere/fix
Removed trailing whitespace
2015-10-12 11:06:11 +03:00
Andrew Murray
89fb9965ef Capitalised Python and Pillow 2015-10-11 21:27:43 +11:00
Andrew Murray
6bd7e7f02d Removed trailing whitespace 2015-10-11 21:24:35 +11:00
nu774
2be12dec2b Don't use int to handle type
Couldn't accept handle values greater than 0x7FFFFFFF, which wasn't enough even on 32bit system, and completely wrong for 64bit.
2015-10-01 14:54:32 +01:00
Christoph Gohlke
e6733c813a Disable compiler optimizations for topalette and tobilevel functions for all msvc versions 2015-08-28 23:15:56 -07:00
wiredfool
a92d737177 Merge pull request #1278 from wiredfool/winbuild
Windows Build/CI
2015-06-18 09:03:38 -07:00
wiredfool
d2e54d7973 Merge pull request #1255 from radarhere/polygon
Fixed polygon edge drawing
2015-06-17 18:18:36 -07:00
wiredfool
fd55099ffc merge a year of master into winbuild 2015-06-10 12:49:07 -07:00
Andrew Murray
9e24ae023d Fixed various typos 2015-06-08 01:17:49 +10:00
Andrew Murray
16261beeba Fixed polygon edge drawing 2015-06-05 11:16:33 +10:00
Andrew Murray
3cd7f0e6f2 Removed unused variable in Jpeg2KEncode 2015-04-01 15:14:56 +11:00
wiredfool
4566a4dcbe Merge pull request #1128 from hugovk/noise
Fix ImagingEffectNoise
2015-03-08 18:29:44 -07:00
hugovk
f1333617d5 Replace harcoded assumption of RAND_MAX with constant. It caused an infinite loop if RAND_MAX > 32767 2015-03-05 23:14:36 +02:00
hugovk
0b79c6e24a Remove unreachable code (if 0) 2015-03-05 21:07:16 +02:00
wiredfool
b384a7f992 Merge pull request #1088 from bgilbert/opaque-RGBa
Fast path for opaque pixels in RGBa unpacker
2015-02-05 22:32:58 -08:00
immerrr
d41fed6732 Enable basic support for 'RGBa' raw encoding/decoding 2015-02-02 13:06:56 +03:00
Benjamin Gilbert
77b020b374 Special-case opaque pixels in RGBa unpacker
Avoid the expensive multiply and divide when the pixel is opaque.
On my system, this change gives a 5.76x speedup loading an opaque image
with this call:

    PIL.Image.frombuffer('RGBA', (1000, 1000), buf, 'raw', 'RGBa', 0, 1)
2015-01-24 01:13:58 -05:00
Christoph Gohlke
9b8202203a Use Py_ssize_t instead of ssize_t 2014-12-19 01:30:16 -08:00
Christoph Gohlke
b8fafdef69 Use Py_ssize_t instead of ssize_t 2014-12-19 01:28:21 -08:00
Christoph Gohlke
8fb8d2ec3a Fix msvc compiler error 2014-12-15 14:44:12 -08:00
wiredfool
2d2293ba3b Merge pull request #1028 from homm/resize-constants
Rename Image.ANTIALIAS to Image.LANCZOS
2014-12-03 16:14:29 -08:00
wiredfool
05b578e7f4 Fix for building on OSX/Clang. 2014-12-01 20:40:10 -08:00
homm
43d5d06ce4 rename Image.ANTIALIAS to Image.LANCZOS 2014-11-28 01:41:56 +03:00
wiredfool
e16ee15f2c Merge pull request #997 from homm/replace-resize
Replace resize method
2014-11-27 10:26:48 -08:00
wiredfool
8a3302ba5d Merge pull request #961 from homm/fast-box-blur
Merge Fast Gaussian Blur
2014-11-27 10:20:11 -08:00
homm
107b4a8b07 sharp alpha channel
resolve sharp endianness issues
2014-11-22 01:58:31 +03:00
homm
d0c419632e resolve endianness issues 2014-11-21 21:53:13 +03:00
homm
bc0f896a47 rename Antialias and stretch to resample 2014-11-19 14:36:00 +03:00
homm
1a097d2e02 Merge commit 'e0b94d65bedb4a2124228aa579686a3ba2974d11' into replace-resize 2014-11-19 13:45:04 +03:00
homm
6078e6e1a7 this bug actually was in previous implementation too:
type switch default case was never achieved because special
images is in image8 pointers, not in image32
2014-11-19 03:15:24 +03:00
wiredfool
9d1fde0fff Use __NO_INLINE__ instead of Py_DEBUG 2014-11-13 21:35:06 -08:00
wiredfool
112a4815f0 Fix compilation on debug versions of python 2014-11-13 15:53:51 -08:00
homm
aba798af25 replace resize implementation 2014-11-09 21:52:16 +03:00
homm
90ee223305 Move ImagingTransposeToNew from Antialias.c to Geometry.c 2014-11-09 03:15:54 +03:00
homm
7a64f7be80 Replace UINT32 assignment with per-channel UINT8 assignment 2014-11-09 03:08:25 +03:00
homm
abc5e11371 two bands case 2014-11-09 03:08:25 +03:00
Eric Soroos
af02f2b29e Fix for endianness issues in stretch 2014-11-09 03:07:19 +03:00
homm
b8a2b5b907 typo. Free mem after ModeError. 2014-11-09 03:05:57 +03:00
homm
1cd6da4a49 fix performance regression on 64 bit GCC 4.8. 2014-11-09 03:05:57 +03:00
homm
42967dd1a6 speedup by unrolling loops 2014-11-09 03:05:57 +03:00
homm
c22af89ef0 optimize memory usage 2014-11-09 03:05:56 +03:00
homm
e9fc720709 faster float to 8bit convertion 2014-11-09 03:05:56 +03:00
homm
a484d28d1f make x indexes int 2014-11-09 03:05:56 +03:00
homm
e276e6a535 move ww into coefficients 2014-11-09 03:05:56 +03:00
homm
01b947c602 Iterate pixels in native order 2014-11-09 03:05:56 +03:00
homm
b77521bd6c Precompute coefficients for all x 2014-11-09 03:05:56 +03:00
homm
40f9f48680 two ImagingStretchHorizaontal pass with two transposes 2014-11-09 03:05:56 +03:00
homm
c8471bcbda Hide stretch implementation detail in Antialias.c 2014-11-09 03:05:56 +03:00
wiredfool
cfbe49f124 Merge pull request #994 from homm/add-transpose
Add transpose and cache aware rotation
2014-11-07 13:58:18 -08:00
homm
4cf2f158b6 add test
update comment
2014-11-07 11:48:47 +03:00
homm
a51b176644 make ROTATE_CHUNK constant
add comment
2014-11-07 04:46:16 +03:00
homm
cfa20f1004 rotate 90 and 270 by chunks 2014-11-07 04:15:18 +03:00
homm
a960d440db less operations in loop 2014-11-07 03:57:00 +03:00
homm
d41bc4fbfc convert tabs into spaces 2014-11-07 03:21:38 +03:00
wiredfool
20be641329 Merge pull request #970 from homm/fix-bicubic-stretch
Fix bicubic stretch interpolation
2014-11-05 17:45:47 -08:00
homm
4007a78d53 rename temp to imTransposed
actualize comments
2014-10-30 14:48:29 +03:00
homm
c99f05cd6e change arguments order and names in LineBoxBlurXX and HorizontalBoxBlur 2014-10-30 14:32:41 +03:00
homm
36a35e7e27 update box_blur help
fix code style for `!`
fix spelling
2014-10-30 14:19:12 +03:00
homm
4323683a63 move ImagingGaussianBlur to BoxBlur.c 2014-10-25 17:17:53 +04:00
homm
274f0a14ba change arguments order and names to match other functions 2014-10-25 17:16:14 +04:00
homm
65173f946b replace gaussian blur with extended box blur implementation 2014-10-25 16:36:41 +04:00
homm
d89c9ab750 Merge branch 'gaussian-refactor' into fast-box-blur 2014-10-25 15:50:57 +04:00
homm
36cbb16bf6 Add tests. Rise for "P" and "1". 2014-10-25 14:23:07 +04:00
homm
acdcdd487f convert tabs to spaces 2014-10-25 14:19:29 +04:00
homm
12ba034dc8 unlock upscale filters 2014-10-25 12:39:03 +04:00
homm
d7d92275f1 Change arguments order and names 2014-10-25 04:28:05 +04:00
homm
57cd15f9b1 Use Transpose from geometry. 2014-10-25 04:27:46 +04:00
homm
316ac5ad57 Merge branch 'add-transpose' into fast-box-blur 2014-10-25 04:18:43 +04:00
homm
0c90ce2504 Add new fast ImagingTranspose function 2014-10-25 04:17:59 +04:00
homm
c2d688c4b6 fix bicubic stretch interpolation 2014-10-24 12:57:32 +04:00
homm
c1eb77a4ed faster commit 2014-10-19 18:34:49 +04:00
homm
f55ea4c04c Do not use lineOut buffer if source and destination are different. 2014-10-19 13:54:18 +04:00
homm
516bd90cf7 support for multiple passes with only two transposes 2014-10-19 13:54:13 +04:00
homm
d91d7b9826 significant speed improvement (about 55%) 2014-10-19 00:01:38 +04:00
homm
22668de6db HorizontalBoxBlur unified
LineBoxBlur8 & LineBoxBlur32
2014-10-18 18:37:14 +04:00
homm
7d77db20ad Small optimization: replace division with multiply. 2014-10-18 04:02:10 +04:00
homm
d07c9c2e4e unused 2014-10-16 16:00:29 +04:00
homm
53c8352f39 highlevel api 2014-10-15 04:08:21 +04:00
homm
5861a46a54 check image mode 2014-10-14 23:29:50 +04:00
homm
a27baf90be fix large radius. tests 2014-10-14 03:26:46 +04:00
homm
da84cd7ea6 big radius special case 2014-10-14 02:17:53 +04:00
homm
d3d4ff69eb introduce corners 2014-10-13 23:45:21 +04:00
homm
b1cef839bd fix window calculation 2014-10-13 04:40:44 +04:00
homm
3906ff3c76 fix x bounds 2014-10-13 03:39:35 +04:00
homm
835db5d12f type check 2014-10-12 22:40:36 +04:00
homm
2c723abbca move HorizontalBoxBlur8 down and remove comments 2014-10-12 22:40:36 +04:00
homm
591fc67aae micro optimizations 2014-10-12 22:40:31 +04:00
homm
92635d0624 8bit 2014-10-12 22:26:00 +04:00
homm
e95382eb08 integer implementation for float radius 2014-10-12 20:30:46 +04:00
homm
f3af171dc4 fix round compensation 2014-10-12 20:09:28 +04:00
homm
f711ab3eb6 float radius 2014-10-12 20:01:49 +04:00
homm
23068e49be allow float radius (without implementation) 2014-10-12 19:24:38 +04:00
homm
b7b3c719fa blur in both directions 2014-10-12 17:59:20 +04:00
homm
cc9eff5c68 fast realization with moving window.
linear speed against any radius
2014-10-12 17:47:00 +04:00
homm
a6937d84d8 first Horizontal Blur for 32 2014-10-12 17:11:24 +04:00
homm
d49459f5b2 box blur dummy 2014-10-12 16:30:00 +04:00
homm
e38a64b21b round values with initial .5
this improves performance and readabillity
2014-10-12 15:13:37 +04:00
homm
bc24685344 do sum calculation in same loop as maskData calculation 2014-10-12 14:21:13 +04:00
homm
51984f4aa8 fix radius == 0 2014-10-12 14:16:09 +04:00
homm
84b9f16bfd add effective_scale to all APIs 2014-10-12 03:29:20 +04:00