Commit Graph

585 Commits

Author SHA1 Message Date
Alexander
6df28bc359 Faster ImagingFlipLeftRight 2017-09-10 12:45:45 +03:00
Alexander
765c7eb7de Shift is faster than devision 2017-09-10 01:14:53 +03:00
Alexander
c59529d28d use PRECISION_BITS constant in ImagingAlphaComposite
use UINT32 instead of UINT16 (a bit faster on x86)
2017-09-01 13:26:08 +03:00
Alexander
0acc2cea9c Fix need_horizontal and need_vertical conditions in resample 2017-09-01 00:24:49 +03:00
Alexander
1e1f773f8a Rename variables 2017-08-31 19:25:25 +03:00
Alexander
dc143f7833 Merge branch 'master' into new-dirty 2017-08-31 17:34:05 +03:00
wiredfool
367ce3c1bc Merge pull request #2693 from uploadcare/fast-unpacking
Fast unpacking and partially packing
2017-08-31 15:23:11 +01:00
wiredfool
9797e7bbfa Merge pull request #1989 from uploadcare/jpeg-loading-without-convertion
Use RGBX rawmode for RGB JPEG images
2017-08-31 15:10:38 +01:00
Alexander Karpinsky
4029998d4f Merge pull request #2699 from uploadcare/better-cmyk
Convert CMYK to RGB like Google Chrome
2017-08-31 16:45:57 +03:00
wiredfool
32d14e382a Merge pull request #2698 from uploadcare/jpeg-subsampling
Fix sampling factor for subsampling=2 while JPEG saving
2017-08-31 13:23:48 +01:00
Alexander
6701828dfc Merge branch 'master' into fast-unpacking
# Conflicts:
#	libImaging/Unpack.c
2017-08-28 21:54:46 +03:00
Alexander
ad4b42f5f4 Merge branch 'master' into fast-filters 2017-08-28 21:47:43 +03:00
Alexander
d8af3fc23a Merge branch 'master' into jpeg-loading-without-convertion 2017-08-28 19:45:19 +03:00
Alexander
3f07f0291e Merge branch 'master' into fast-unpacking 2017-08-28 19:43:15 +03:00
Alexander
82c986dfab Merge branch 'master' into 16-bit-rgb-tiff 2017-08-28 19:42:46 +03:00
Alexander Karpinsky
6b4b1dc3c5 Merge pull request #2694 from uploadcare/packing-tests
Packing tests
2017-08-28 19:42:06 +03:00
Alexander
aac0869ca7 Revert little-endian byte order for "I" and "F" rawmodes 2017-08-28 19:02:15 +03:00
Alexander
efb0915b19 Convert CMYK to RGB like Google Chrome 2017-08-28 17:11:08 +03:00
Alexander
4d56db3a34 Fix wrong formula for subsampling=2 while JPEG saving 2017-08-27 20:03:36 +03:00
Alexander
b705df3b64 one div for blending 2017-08-27 12:40:53 +03:00
Alexander
12634c4524 Merge branch 'packing-tests' into fast-unpacking
# Conflicts:
#	Tests/test_lib_pack.py
2017-08-26 20:20:17 +03:00
Alexander
7f7b53447a Add tests for all new modes 2017-08-26 17:36:06 +03:00
Alexander
a78e45c3dc Merge branch 'packing-tests' into 16-bit-rgb-tiff 2017-08-26 17:17:49 +03:00
Alexander
f43b9f396f Second part of pack tests 2017-08-26 10:49:28 +03:00
Alexander
8cb9cba1e0 Packing tests, first part. Fix RGBX packers 2017-08-24 00:58:39 +03:00
Alexander
2439c9b2db possible fix I→I and L→L unpacking on bigendian 2017-08-23 23:09:50 +03:00
wiredfool
f5a8ece187 Merge pull request #2254 from uploadcare/resample-roi
Region of interest (box) for resampling
2017-08-22 22:35:12 +01:00
Alexander
ad2c952697 Add more tests 2017-08-22 01:35:24 +03:00
Alexander
40d30f678b Use MAKE_UINT32 when possible for unpacking 2017-08-22 00:06:26 +03:00
Alexander
21d1c4cef5 Merge branch 'master' into 16-bit-rgb-tiff 2017-08-21 22:43:30 +03:00
Alexander
8c64275156 Load 16-bit RGB and RGBA TIFF image 2017-08-21 16:28:29 +03:00
Alexander
fc40ef0c1e Move PREBLEND and BLEND to ImagingUtils.h 2017-08-19 15:58:23 +03:00
Alexander
d64f163760 Move MULDIV255 and SHIFTFORDIV255 to ImagingUtils.h 2017-08-19 15:47:04 +03:00
Alexander
58542fdfb9 Move WORDS_BIGENDIAN to ImagingUtils.h 2017-08-19 15:30:41 +03:00
Alexander
00b65ce1c3 unused 2017-08-19 15:27:39 +03:00
Alexander
762b09cdb5 unroll ImagingPackRGB 2017-08-18 01:46:00 +03:00
Alexander
b4e226714d Faster ImagingUnpackRGB 2017-08-17 23:54:30 +03:00
Alexander
b975f9db92 Merge branch 'master' into resample-roi
# Conflicts:
#	libImaging/Resample.c
2017-08-17 15:43:30 +03:00
wiredfool
e1aba29f9b Merge pull request #2683 from wiredfool/issue_2044
Test/fix for issue #2044
2017-08-17 11:52:07 +01:00
Alexander
4af4256ac3 Use ImagingNewDirty 2017-08-17 12:14:19 +03:00
Alexander
bec01d3b0d Use ImagingNewDirty when possible 2017-08-17 03:23:13 +03:00
Alexander
a941747f14 use ImagingNewDirty 2017-08-17 02:56:51 +03:00
Alexander
e7cdb3718c Merge branch 'master' into fast-filters 2017-08-17 02:50:18 +03:00
Alexander
9cf8f93c64 Merge branch 'master' into fast-merge
# Conflicts:
#	_imaging.c
#	libImaging/Bands.c
#	libImaging/Imaging.h
2017-08-16 22:56:16 +03:00
wiredfool
300dfcf4a4 Test/fix for issue #2044 2017-08-16 11:46:27 -07:00
wiredfool
d3580451e2 Merge pull request #2676 from uploadcare/fast-split
Fast split()
2017-08-16 16:10:33 +01:00
wiredfool
9c4535bc82 Merge pull request #2655 from python-pillow/fast-allocation
Fast image allocation
2017-08-16 15:16:43 +01:00
wiredfool
e7aa155b72 Merge pull request #2654 from python-pillow/storage-cleanup
Storage cleanup
2017-08-16 12:00:32 +01:00
wiredfool
3b0f183d5c Merge pull request #2648 from ifeherva/master
Fixed bc5 decoding
2017-08-16 11:42:31 +01:00
Alexander
c5865f9abe it's implementation detail (SSE rounds automatically) 2017-08-13 17:39:22 +03:00
Alexander
3949fc812a avoid warning: always_inline function might not be inlinable 2017-08-13 16:33:36 +03:00
Alexander
5dbc71b69b already defined 2017-08-13 16:27:54 +03:00
Alexander
b10b134b41 i2f fix 2017-08-13 16:01:01 +03:00
Alexander
c2e0092589 Speed up resampling again a bit ) 2017-08-13 01:10:19 +03:00
Alexander
8d4681ff67 5x5 kernel 2017-08-13 00:33:52 +03:00
Alexander
f3a33da9f3 3x3 kernel 2017-08-13 00:15:57 +03:00
Alexander
b11bba108e accept multiband images in filter (noop) 2017-08-13 00:03:50 +03:00
Alexander
55f153d999 Merge branch 'master' into fast-filters
# Conflicts:
#	libImaging/Filter.c
2017-08-12 23:52:31 +03:00
Alexander Karpinsky
bbe07d4f49 Merge pull request #2670 from uploadcare/threaded-filter
Release GIL in filters
2017-08-12 23:51:08 +03:00
Alexander
49492def9b Merge branch 'master' into fast-filters
# Conflicts:
#	libImaging/Filter.c
2017-08-12 23:43:25 +03:00
Alexander
847dd67a41 serious test for kernel filters 2017-08-12 23:22:59 +03:00
Alexander
38eab1a43f do 3x3 filtering in separate function 2017-08-12 23:07:08 +03:00
Alexander
5353d28e35 copy first and last lines 2017-08-12 22:18:24 +03:00
Alexander
f71b3a8ed7 clip8 function 2017-08-12 22:12:59 +03:00
Alexander
7c3c3273eb compiler makes this for me 2017-08-12 19:41:18 +03:00
Alexander
b454f773bd make things faster 2017-08-12 19:39:11 +03:00
Alexander
a2681a0690 naive implementation 2017-08-12 19:17:21 +03:00
Alexander
91b08b7daa noop core.merge 2017-08-12 19:08:07 +03:00
Alexander
294da4e8f5 error handling 2017-08-12 17:42:49 +03:00
Alexander
6ce6cc7537 faster ImagingSplit 2017-08-12 15:49:46 +03:00
Alexander
ca75d63f3a ImagingSplit implementation 2017-08-12 15:26:00 +03:00
Alexander
559836d97d im.split method
ImagingSplit function without implementation
2017-08-12 15:26:00 +03:00
Alexander
c23b65c670 make ImagingGetBand faster 2017-08-12 15:25:59 +03:00
Alexander Karpinsky
09a2e1641b Merge branch 'master' into resample-roi 2017-08-11 19:10:11 +03:00
Alexander
864a24e7b8 Release GIL in filters 2017-08-11 15:17:47 +03:00
Alexander
3aea175141 use RGBX rawmode for JPEG encoding as well 2017-08-11 04:10:55 +03:00
Alexander
7725d281a5 create separate ImagingJpegUseJCSExtensions function 2017-08-11 04:07:54 +03:00
Alexander
1dcafb93a0 Merge branch 'master' into jpeg-loading-without-convertion 2017-08-11 00:40:21 +03:00
Alexander
ffe0c3b0af Fix Bands.c module indention 2017-08-09 03:48:24 +03:00
Alexander
b6638d8155 divide coefficients before applying 2017-08-07 01:11:05 +03:00
Alexander
557e89fcd3 Fix Filter.c module indention 2017-08-07 00:20:35 +03:00
Alexander
a519851903 ImagingNew2 is always Dirty 2017-08-06 20:08:07 +03:00
Alexander
eb4096ffd5 create dirty images for cropping 2017-08-06 15:01:17 +03:00
Alexander
19a8649589 create dirty images for some operations 2017-08-06 14:22:58 +03:00
Alexander
7a1e70d997 new internal API function ImagingNewDirty 2017-08-06 14:22:58 +03:00
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