Commit Graph

600 Commits

Author SHA1 Message Date
Alexander
0990dadd6d use accurate im->linesize instead of strlen(mode) approximation 2017-08-06 14:12:55 +03:00
Alexander
d55557152b rename ImagingNewBlock → ImagingAllocateBlock
rename ImagingNewArray → ImagingAllocateArray
new utility function with old name ImagingNewBlock
call ImagingNewPrologue outside of ImagingAllocateBlock and ImagingAllocateArray
2017-08-06 14:12:55 +03:00
Alexander
eafa258bd1 destroy image and set MemoryError on overflow check failure 2017-08-06 14:12:55 +03:00
Alexander
6b50ba07fd add tests for Image.new modes 2017-08-06 14:12:55 +03:00
Alexander
ab92adf7c9 move ImagingNewEpilogue functionality to ImagingNewPrologueSubtype
doublechecked: no im->image or im->image8 or im->image32 access
between ImagingNewPrologue and ImagingNewEpilogue anywhere
2017-08-06 14:12:55 +03:00
Alexander
fd9cf03d01 FIX memory leak
ImagingNewEpilogue now is always success
The Imaging object itself is freed through ImagingDelete in case
when memory is not allocated in ImagingNewBlock or ImagingNewArray
2017-08-06 14:12:55 +03:00
Alexander
152104bba3 check args before allocate memory 2017-08-06 14:12:55 +03:00
Alexander
430c53707f no reasons to release GIL for one calloc 2017-08-06 14:12:55 +03:00
Istvan Fehervari
0477278c68 Fixed bc5 decoding
BC5 decoding uses only 2 channels instead of 4. The current algorithm did not initialize the RGBA struct which resulted in random values in the output image. This commit should initialize the decoded RGBA struct, thus setting B and A values to default (0).
2017-08-03 11:07:51 +02:00
wiredfool
5a671830d8 Merge pull request #2541 from uploadcare/fix-truncated-png-loading
Fix truncated png loading
2017-06-21 12:23:15 +01:00
wiredfool
d8f15a0706 Merge pull request #2558 from uploadcare/resize-truncate-coeffs-2
Use round instead of floor to exclude of zero coefficients
2017-06-13 21:03:27 +01:00
wiredfool
1cfb20a2a9 Merge pull request #2533 from hugovk/imagedraw
Add more ImageDraw.py tests and remove unused Draw.c code
2017-06-13 13:10:32 +01:00
Alexander
afc592ad7b replace the excluding of zero coefficients with math power 2017-05-29 14:29:12 +03:00
Alexander
ad883961ac fix hamming filter 2017-05-29 14:29:12 +03:00
Andrew Murray
a8a499cce2 Fixed typo 2017-05-25 21:06:13 +10:00
Alexander
e6da335206 fee → free 2017-05-25 13:59:11 +03:00
Alexander
8c69132579 fix another memory leak 2017-05-23 18:00:15 +03:00
Alexander
873d9ec089 fix memory leak if loading is failed 2017-05-23 18:00:15 +03:00
hugovk
6e9e4c1027 Remove unexposed and unused code 2017-05-15 22:59:25 +03:00
hugovk
2968313bb6 Remove unrunnable code: ImagingDrawWideLine is only called (in _imaging.c) when (width <= 1) is false 2017-05-15 21:17:33 +03:00
wiredfool
4e160cd981 Disable undef on pypy 2017-04-19 13:27:59 -07:00
wiredfool
c3717da45a Undef PySlice_GetIndicesEx, see https://bugs.python.org/issue29943 2017-04-19 12:56:13 -07:00
wiredfool
878881b1b9 Fix Access to be reloaded if the python interpreter is restarted when embedded. Fixes #2268. 2017-03-22 21:20:37 +00:00
wiredfool
949932f45f Pure Python MSP Decoder 2017-03-11 13:50:19 +00:00
Hugo
53e5702557 Update http to https 2017-02-14 11:27:02 +02:00
wiredfool
9c4eafc188 Merge pull request #2382 from hugovk/test-effects
Test linear and radial gradient effects
2017-02-06 21:58:41 +00:00
hugovk
05aa252f9f Tabs to spaces and add defensive brackets 2017-01-29 18:50:30 +02:00
Lukasz Kozuchowski
3ffcd9770c BUG fix: '' in image mode no longer causes a crash 2017-01-29 07:20:44 +01:00
Hugo
e83479edf0 Merge pull request #2263 from wiredfool/tiff_bytesio
Fix for writing Tiff to BytesIO using libtiff
2016-12-09 11:04:41 +02:00
wiredfool
88c43b61b7 Fix for #2258, 2 bit palette images corrupted 2016-12-03 14:08:59 +00:00
wiredfool
b3f8b5fa7d tabs->spaces 2016-12-03 14:07:49 +00:00
homm
98042cd4b7 fix memory leak 2016-12-02 15:40:41 +03:00
homm
7ea0611af4 crop roi for vertical pass if box is used 2016-12-01 21:09:29 +03:00
homm
d382183591 compute bounds and kk before passes 2016-12-01 14:04:31 +03:00
homm
4ff7afbe16 xbounds → bounds
kmax → ksize
2016-12-01 13:48:50 +03:00
homm
c7161af924 set error type when it happens 2016-12-01 04:10:58 +03:00
homm
8d7355e733 do not allocate memory in normalize_coeffs_8bpc 2016-12-01 04:02:22 +03:00
homm
02e1ae3d8f move precompute_coeffs to ImagingResampleInner 2016-12-01 03:26:10 +03:00
homm
2c2bdd80ef split out ImagingResampleInner from ImagingResample 2016-11-30 21:59:21 +03:00
homm
9842505a60 remove fifth argument from ResampleFunction 2016-11-30 20:43:54 +03:00
homm
6def4bfc73 roi → box 2016-11-30 20:01:28 +03:00
homm
4079c7f192 allocate new image outside of ResampleHorizontal/ResampleVertical 2016-11-30 05:27:20 +03:00
homm
44e443fa75 fix int boundaries 2016-11-26 01:38:55 +03:00
homm
ef787bc3f5 use ROI in precompute_coeffs 2016-11-24 06:11:36 +03:00
homm
a1fedc0f8a expose roi to precompute_coeffs (still noop) 2016-11-24 06:05:20 +03:00
wiredfool
76b1eb242e Fix for issue #2206 2016-11-23 06:14:06 -08:00
wiredfool
e43c91cf1c Working 1 bit sun_rle raster file 2016-11-19 19:16:46 -08:00
wiredfool
5df2851f85 Fixed literal expansion, allowed run length > line length 2016-11-19 17:39:30 -08:00
Alexander Karpinsky
5a359fbf28 Fix coefficients calculation (#2162)
Fix coefficients calculation

* test for regression

* detailed comments what is going on
prevent setting the `k[-1]` item

* more readable
2016-10-17 01:31:45 -07:00
homm
a926d2e16f use RGBX raw mode for RGB JPEG images 2016-10-12 23:23:05 +03:00
wiredfool
1a43da7a8b Removed 'Debugging' open_ppm call that didn't check file provided parameters for sanity 2016-10-03 07:27:02 -07:00
wiredfool
c0d2d2a912 whitespace: mixed 8ch tabs + spaces -> spaces 2016-10-03 07:27:02 -07:00
wiredfool
5d8a0be45a Memory error in Storage.c when accepting negative image size arguments 2016-10-03 07:27:02 -07:00
Andrew Murray
4c28926da3 Fixed typos 2016-10-02 21:31:53 +11:00
wiredfool
69ee1e35b8 Merge pull request #2015 from uploadcare/paste-speedup
Speedup paste with masks up to 80%
2016-09-22 10:10:56 +01:00
wiredfool
9c4c16df75 Merge pull request #2068 from Mischanix/dxtc
Move DDS decoders to C, add DXT3, BC7 Decoders
2016-09-22 10:04:23 +01:00
homm
30a5f1a0d0 fix blend macros 2016-09-19 03:12:20 +03:00
homm
003a7523df speedup paste with masks 2016-09-19 03:12:20 +03:00
homm
08edf70321 paste.c formatting 2016-09-19 03:12:20 +03:00
Andrew Murray
572a3d970c Removed whitespace from blank lines 2016-09-03 12:23:42 +10:00
Andrew Murray
00cb14afd7 Removed trailing whitespace 2016-09-03 12:19:04 +10:00
Andrew Murray
5c59603fcf Fixed typos 2016-08-31 20:12:07 +10:00
Robert Nix
2be760ca79 Add support for BC7 to DdsImagePlugin 2016-08-26 02:26:03 -05:00
Robert Nix
b46804ea27 Add support for DXT3 to DdsImagePlugin 2016-08-25 20:12:44 -05:00
Robert Nix
18a91cebcf Move DDS decoders to C
- Fixed inaccurate BC1/BC3 texture decoding
2016-08-25 19:27:48 -05:00
wiredfool
39227ff33c Merge pull request #2091 from wiredfool/pr_2008
Resampling lookups, trailing empty coefficients, precision
2016-08-25 12:58:36 +01:00
Andrew Murray
e0612ab14f Fixed typo 2016-08-25 21:43:31 +10:00
wiredfool
35068e35d1 Merge pull request #2057 from arjennienhuis/RGBa
Add (un)packing between RGBA and BGRa
2016-08-25 12:31:23 +01:00
homm
5c0eb2c365 normalize coefficients in normalize_coeffs_8bpc
increase precision of negative filter lobes. Add test
2016-08-25 04:11:02 -07:00
homm
788810f313 ImagingPrecompute → precompute_coeffs 2016-08-25 04:11:02 -07:00
homm
7d3db1f02a truncate zero coefficients 2016-08-25 04:11:02 -07:00
homm
62388199fa use lookups table instead of two conditions for each channel 2016-08-25 04:11:02 -07:00
wiredfool
5d2667efda Merge pull request #2022 from uploadcare/rotation-pixel-center
Respect pixel centers during transform
2016-08-25 11:40:09 +01:00
Andrew Murray
aad079a669 Fixed typos 2016-08-14 16:44:56 +10:00
Arjen Nienhuis
299713313a Fixed whitespace issue 2016-08-08 00:09:55 +02:00
Arjen Nienhuis
916ea94052 Add packing from RGBA to BGRa 2016-08-07 15:34:45 +02:00
homm
993e49c0be Merge branch 'master' into rotation-pixel-center 2016-08-07 13:47:16 +03:00
Arjen Nienhuis
2ecbcce415 add unpacking from BRGa 2016-08-07 13:32:19 +03:00
homm
87b20389d8 fix any errors 2016-07-28 05:30:27 +03:00
homm
978c37d699 add tests for different PCX encoding cases 2016-07-28 05:29:24 +03:00
homm
f8912a73e0 code style 2016-07-27 14:41:04 +03:00
homm
1321713688 repeat all affine tests with PERSPECTIVE 2016-07-11 00:26:12 +03:00
homm
5232361718 fix errors with pixel center coordinates 2016-07-10 14:16:14 +03:00
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