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
homm
091b15f9d5
rename vars
2014-10-12 03:19:26 +04:00
homm
5bb0cfa17a
remove pseudo vcs
2014-10-12 02:05:13 +04:00
homm
b1b5db16cd
padding not using anywhere
2014-10-12 00:50:18 +04:00
homm
7bc19c4019
reference gaussian_blur implementation
...
radius meaning match graphicmagick, pixelmator other software
and standard deviation from classic gaussian blur algorithm
2014-10-11 23:51:26 +04:00
homm
bef7e1dce8
cache hasAlpha for ImagingUnsharpMask
2014-10-08 17:40:33 +04:00
homm
e56aed1a95
round pixel values
2014-10-08 15:05:48 +04:00
homm
05c99131e0
fix blur for RGBA & RGBX
2014-10-06 21:55:43 +04:00
homm
626acf705f
convert tabs to spaces
2014-10-06 21:04:54 +04:00
Sandro Mani
7502e6dd45
Remove executable permissions from Jpeg2KEncode.c
2014-10-03 09:57:32 +02:00
Andrew Murray
006229595a
Remove unused variable in libImaging
2014-10-02 07:48:12 +10:00
wiredfool
d64b2376bc
Memory Leak: Freeing malloc'd memory in Jpeg Encode
2014-09-24 15:46:24 -07:00
wiredfool
00addab5e4
Real fix for PR #915 , keep track of the qtables length
2014-09-23 09:23:55 -07:00
Christoph Gohlke
b23c57e12a
Fix segfault in TestFileJpeg.test_quality_keep on win-amd64
2014-09-22 14:39:08 -07:00
Christoph Gohlke
f3e3af6686
Fix msvc build error
2014-09-21 16:48:35 -07:00
Josh Ware
94194ed248
Cleaning up.
...
Reduced memory limit to 1GB
2014-09-12 22:09:27 -07:00
Josh Ware
dd221d9ec0
Don't Py_DECREF context->quality_layers if there is no encoder
2014-09-12 22:09:27 -07:00
Josh Ware
e4e1f5c2d4
More testing...
2014-09-12 22:09:27 -07:00
Josh Ware
9ccc930784
Looking for cleanup segfault
2014-09-12 22:09:27 -07:00
Josh Ware
7407371deb
NULLing pointers on cleanup
2014-09-12 22:09:27 -07:00
Josh Ware
caa95a26b2
Added memory leak fix and testing for Encoder
2014-09-12 22:09:27 -07:00
Josh Ware
b78e5444f4
Prevent multiple calls to ImagingIncrementalCodecDestroy
2014-09-12 22:09:27 -07:00
Kenny Ostrom
d5b4f136c5
added ifd offset to the tiff decoder args, call TIFFSetSubDirectory
2014-09-02 15:20:25 -07:00
hugovk
3a9612af50
Test mandelbrot with bad arguments
2014-09-02 16:39:35 +03:00
hugovk
bcc5305125
Add access functions for ImagingEffectSpread with a test
2014-09-02 15:53:58 +03:00
hugovk
8c96d38ce9
Add access functions for ImagingEffectMandelbrot with a test
2014-09-02 15:14:00 +03:00
hugovk
76ef83263b
Remove unreachable and never completed Perlin turbulence code
2014-09-02 14:47:34 +03:00
hugovk
860e67e1c4
Add access functions for ImagingEffectNoise with a test
2014-09-02 14:11:08 +03:00
wiredfool
9d00686f53
backup implementation of Round for windows platforms
2014-08-24 16:37:54 -07:00
wiredfool
023ec0a2fc
Incorrect type -- fails on OSX
2014-07-25 10:32:55 -07:00
wiredfool
0bb1cd398f
Conversion between RGB and HSV images
2014-07-22 16:10:02 -07:00
wiredfool
625ff24358
Storage, packing and access for HSV format images
2014-07-22 16:09:22 -07:00
wiredfool
1008d6a993
Windows compatibility
2014-07-05 15:06:17 -07:00
wiredfool
b7f56409eb
Multiplication needs to be 64bit, to handle overflow regardless of the bittedness of the machine, fixes #771#
2014-07-05 14:30:34 -07:00
Alex Clark ☺
b2ed31e8cd
Merge pull request #737 from wiredfool/terseus_imagedraw
...
Merged Imagedraw rewrite
2014-07-01 14:15:11 -04:00
wiredfool
98a4991762
Using local block rather than array literal
2014-07-01 10:20:15 -07:00
wiredfool
a10b91786a
Fix compilation errors with C90 standard
2014-07-01 10:05:38 -07:00
cgohlke
767182a56f
ENH: enable inline functions by default
2014-06-30 15:26:41 -07:00
wiredfool
3bf375c5f7
Merge branch 'master' into terseus_imagedraw
2014-06-30 14:24:59 -07:00
wiredfool
50bbb5e0c5
Removed unused function
2014-06-30 14:12:30 -07:00
David Joy
b147dea535
Add tests and fix a 16bit vs 32bit integer bug
...
Yay unit tests!
2014-06-25 14:06:56 -04:00
David Joy
479693417f
Merge the rest of the patches
...
Now it actually works and passes the test suite
2014-06-25 11:42:06 -04:00
David Joy
433ec1c219
Clean commit of 16-bit monochrome JPEK2000 support
2014-06-25 11:13:33 -04:00
Hugo
9f0b688952
Merge pull request #725 from cgohlke/patch-2
...
Fix msvc warning: 'inline' : macro redefinition
2014-06-25 10:47:47 +03:00
cgohlke
e79f996a45
Fix test_imagedraw failures
2014-06-25 00:07:07 -07:00
cgohlke
b593ff06ad
Fix msvc warning: 'inline' : macro redefinition
2014-06-24 22:23:17 -07:00
wiredfool
a990af1b97
Merge from master
2014-06-24 16:48:38 -07:00
Alex Clark ☺
a126844135
Merge pull request #681 from wiredfool/openjpeg_21
...
OpenJpeg 2.1
2014-06-22 15:39:32 -04:00
wiredfool
05d8cb5b8f
Don't carve out exceptions for py2.4 compilers anymore
2014-06-18 16:08:50 -07:00
wiredfool
a8e02e093a
We don't need unistd.h anymore on unix platforms either
2014-06-18 16:08:16 -07:00
James Anderson
5ceb3ca875
Issue #697 . On MSVC 2012 builds <unistd.h> is not required.
2014-06-18 15:54:21 -07:00
Alastair Houghton
72ecb8752e
Changed test for OpenJPEG 2.0
2014-05-27 12:52:50 +01:00
Alastair Houghton
1011e51083
Added support for OpenJPEG 2.1.
2014-05-27 12:43:54 +01:00
wiredfool
d7c049504d
Merge pull request #643 from CounterPillow/datatype-fix
...
Change unsigned INT16 to UINT16
2014-05-20 16:45:06 +01:00
Nicolas F
052ea606bf
Clean up defines and includes for Windows
...
1) Renamed USE_INLINE to PIL_USE_INLINE to avoid conflicts with
other headers/libraries.
2) Replace __WIN32__ and WIN32 with _WIN32
3) Don't define WIN32 when the compiler is MSVC but not on Windows
Why would you even...
4) Don't define strcasecmp if you're not even going to use it.
5) Don't include Windows.h with undefs for compilers newer than
1998 everywhere.
6) Don't surpress warnings for MSVC++ 4.0. People still using
MSVC++ 4.0 deserve it.
7) Don't include things that are already included in Windows.h
2014-05-09 21:05:30 +02:00
Nicolas F
37bb8eec24
Don't ignore USE_INLINE on Windows
2014-05-09 20:14:46 +02:00
Nicolas F
d2fbc52d6c
Change unsigned INT16 to UINT16
...
Addresses issue #642
2014-04-30 11:30:44 +02:00
Terseus
8eae39e98f
Oops, added missing ';'
...
Now writing in the wall "don't push before compile" 100 times.
2014-04-04 19:20:29 +02:00
Terseus
2f6a4d5f1a
Added missing free when xx fail
2014-04-04 18:57:08 +02:00
Terseus
696924f5ac
Added missing xx pointer check
2014-04-04 14:02:36 +02:00
Terseus
dbe3db6fc5
Oops, fixed typo in comments
2014-04-03 11:15:21 +02:00
Terseus
be09da6507
Rewrite of the ImagingDrawWideLine function
...
The previous version of the function didn't generate correct wide lines
of even width.
The most notable changes are:
* Make variable names far more descriptive about the process.
* Corrected the width calculation; we should deduct one pixel from the
width because the pixels at the center of the line doesn't count for
the triangles.
* Now we calculate *two* ratios, one for left/top displacement (dxmin)
and one for right/bottom (dxmax), this fix the behavior with lines
of even width.
It can probably be optimized.
2014-04-02 21:30:42 +02:00
Terseus
cd332fc38a
Rewrite of the polygon_generic function
...
The (previously refactored) polygon_generic function didn't draw
consistent polygons (equilateral polygons were not equilateral nor
symmetrical).
The most notable changes are:
* The horizontal edges are searched for when finding the polygon
boundaries, drawn and discarded from the edge list used to detect
intersections.
* The intersections are now checked and calculated from the current value
of the scan line (ymin) instead of in the middle (ymin + 0.5).
* Because the change in the scan line behavior, we should duplicate
the intersections in the maximum Y value of an edge or there will be
draw errors with concave and complex polygons.
* The rounds of the X coordinates in the hline function calls are
switched to draw the inner pixels.
* Removed the ugly micro-optimization of qsort at the end.
This implementation of the scan line algorithm may not be technically
correct, it's not optimized and it have problems with some edge cases,
like a wide line from (x0, y) to (x1, y + 1), therefore it should be
reviewed in the future.
2014-04-02 21:05:13 +02:00
Terseus
8739613cfb
Implementation of rounds around zero
...
The rounds used in the library are towards positive/negative infinity.
Since we're in a cartesian plane, rounds around zero are much more
convenient, so we can use positive and negative values with consistent
results.
2014-04-01 13:08:15 +02:00
Terseus
deecd8a137
Refactored polygon functions to unify logic
...
The functions `polygon8`, `polygon32` and `polygon32rgba` all have exactly
the same logic in code, only changes the hline function called inside.
Now all the logic is contained in `polygon_generic` which gets a
function pointer to the hline handler, so there is no duplicated code
anymore.
2014-04-01 13:01:03 +02:00
wiredfool
a2800ba9a1
Additional commits from pr
2014-03-27 20:00:10 -07:00
Alastair Houghton
18d6432036
Fixed some problems with the reduce option, as well as a number of warnings from GCC.
2014-03-27 08:35:38 +00:00
wiredfool
2b81156619
merge to master
2014-03-26 18:46:35 -07:00
Alastair Houghton
831216f609
Fixed a Python 3 specific crash.
2014-03-25 16:58:44 +00:00
Alastair Houghton
fea6811af0
Merged wiredfool's changes.
2014-03-19 14:58:47 +00:00