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
caf27c6908
merge from master
2014-03-31 15:47:52 -07: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
wiredfool
8ed7c9ad3f
UNDONE -- are we using unistd.h?
2014-03-19 17:06:33 +00:00
Alastair Houghton
fea6811af0
Merged wiredfool's changes.
2014-03-19 14:58:47 +00:00
Alastair Houghton
ac8ebccfa6
Added tests and fixed a few bugs that the tests threw up.
2014-03-19 12:16:14 +00:00
wiredfool
dfe6fff10f
Eliminating warning for possibly uninitialized variable use
2014-03-14 14:23:44 -07:00
wiredfool
ac52886da1
Fixed compilation errors on linux, ref #547
2014-03-14 11:35:23 -07:00
Alastair Houghton
5853d2aed0
Add a couple of unpackers.
2014-03-14 16:38:30 +00:00
Alastair Houghton
168acabcb0
Fixed some warnings.
2014-03-14 16:38:07 +00:00
Alastair Houghton
9a1b6966b5
Added precinct size option. Also added the jp2klib_version symbol on the _imaging module.
2014-03-14 15:40:30 +00:00
Alastair Houghton
5cb73c94e9
Fixed some Windows issues.
2014-03-14 14:35:09 +00:00
Alastair Houghton
cb1f990a92
Added seek support to make writing jp2 files work. Also added support for directly using an fd rather than relying on the Python loop, if we have a real fd.
2014-03-14 11:21:08 +00:00
Alastair Houghton
61fb89ec54
Added a JPEG 2000 encoder.
2014-03-13 18:27:16 +00:00
Alastair Houghton
aea0ec56b2
Fixed a small bug.
2014-03-13 13:48:15 +00:00
Alastair Houghton
9a4bff722f
Decode tile-by-tile; saves memory and means we don't need to buffer the entire image in the OpenJPEG opj_image.
2014-03-13 13:44:26 +00:00
Alastair Houghton
5b22b715ce
Fixed some bugs.
2014-03-13 12:29:03 +00:00
Alastair Houghton
d6b8f0f666
Added a JPEG 2000 decoder based on OpenJPEG.
2014-03-13 11:46:47 +00:00
wiredfool
89cb3c7e85
Use even stride when saving odd sized .pcx files
2014-03-03 23:05:50 -08:00
wiredfool
05cd72f4f0
mixed 4/8 tabs+spaces -> 4 spaces, additional bracing
2014-03-03 20:28:34 -08:00
wiredfool
5ecec7db10
Move image to first xsize*bands bytes, rather than including padding if stride > xsize*bands, fixes #523
2014-02-15 22:41:02 -08:00
wiredfool
e87e0333fb
Merge branch 'i16-pixelaccess' into cffi-pixelaccess
2014-01-06 23:22:35 -08:00
wiredfool
1dd80b2625
reverted int32 changes
2013-12-30 21:00:32 -08:00
Alex Clark ☺
243160ee78
Merge pull request #448 from wiredfool/2gigapix-redux
...
2gigapix redux
2013-12-28 06:06:42 -08:00
Alex Clark ☺
d48f301d57
Merge pull request #423 from wiredfool/trns-png
...
Support for PNG tRNS header when converting from RGB->RGBA
2013-12-28 05:56:03 -08:00
wiredfool
77c36d6edc
Using uint* for pixel access in mode I;16 and I;32, fixes #452
2013-12-19 21:39:18 -08:00
Eric Soroos
ec6fd4d672
mixed 8ch tabs + spaces -> 4 space indent
2013-12-13 15:17:43 -08:00
Eric Soroos
1060a59de9
int->py_ssize_t for potentially large numbers
2013-12-13 15:16:14 -08:00
wiredfool
0356741a29
Now using the rgbT2rgba conversion for L+transparency to RGBA, dropping the palette hack
2013-11-26 13:04:10 -08:00
wiredfool
c546c5a4c0
Added conversion for RGB+Transparency to RGBA that adds an alpha mask corresponding to the transparency value, fixes #421
2013-11-26 12:24:19 -08:00
wiredfool
42c17c5947
Removing unused, redundant compression variable. Actual compression setting is in the imagefiledirectory
2013-11-21 20:37:52 -08:00
wiredfool
cc5e8f0f6d
Comments
...
Fixes #414
2013-11-20 17:03:46 -08:00
wiredfool
e4fe6ae7a3
Read only implementation of 12bit tiffs
2013-11-20 16:56:23 -08:00
Eric Soroos
3128a76495
MM and II 16 bit integer tiffs pack/write properly using libtiff on bigendian platform
2013-10-21 22:37:20 +00:00
Eric Soroos
6f8d968cbb
MM and II 16 bit integer tiffs unpack properly using libtiff on bigendian platform
2013-10-21 22:17:33 +00:00
Alex Clark ☺
55a0792815
Merge pull request #380 from wiredfool/lcms2
...
LCMS1 replaced with LCMS2
2013-10-16 09:09:15 -07:00
wiredfool
1865a5c438
Shifting the midpoint of the ab channels to 128. unshifting back to signed int on pack
2013-10-15 22:06:30 -07:00
Seth VanHeulen
fc474a7b6f
Added more raw decoder 16 bit pixel formats
2013-10-15 11:35:53 -04:00
wiredfool
4458787f5e
Back to RGBx format, 3 bands in 4 bytes. Tests for internal consistency
2013-10-14 22:47:27 -07:00
wiredfool
cb9440a2f5
packing into 24bit
2013-10-11 23:31:26 -07:00
wiredfool
13d62c9f91
Added LAB to Unpack
2013-10-11 22:40:37 -07:00
wiredfool
eca93101de
B->A, spacing
2013-10-11 22:40:14 -07:00
wiredfool
1111fca8c6
Solved Segfault
2013-10-11 22:29:19 -07:00
wiredfool
1c3932e89f
Added LAB mode, core dumped
2013-10-10 23:27:34 -07:00
wiredfool
b9f94b7632
adding RGBa->RGBA conversion
2013-10-04 13:24:47 -07:00
Nikolas Stevenson-Molnar
dcd40ce5b5
Fix for #254
2013-09-30 01:04:58 -07:00
Christoph Gohlke
4983f6da77
BUG: add typedef uint64_t for msvc
2013-09-27 15:03:27 -07:00
Oliver Tonnhofer
147a0204eb
fix FASTOCTREE quantizer for large images (>16MP)
...
the color value counter sums all color values and this overflows
a uint32 at 16M white pixels, 32M gray pixels, etc.
2013-09-26 10:15:42 +02:00
wiredfool
ac1d43bdef
8 character tabs -> spaces
2013-07-10 22:21:49 -07:00
wiredfool
993e075c0d
Add conversions from I;16 to F to retain 16 bit precision
2013-07-08 23:21:41 -07:00
wiredfool
c7264b5d4b
8 char tabs -> whitespace
2013-07-08 22:39:16 -07:00
Alexey Buzanov
df0e214d46
hide tiff warnings
2013-07-01 19:48:21 +04:00
Alex Clark
bb1b3a532c
Cleanup WS, courtesy of @Arfrever
...
find * -type f "-(" -name "*.bdf" -o -name "*.c" -o -name "*.h" -o -name "*.py" -o -name "*.rst" -o -name "*.txt" "-)" -exec sed -e "s/[[:space:]]*$//" -i {} \;
2013-06-30 18:42:19 -04:00
Alex Clark ☺
aea9570a2c
Merge pull request #221 from wiredfool/jpeg_memoryleak
...
Jpeg Decode memory leak fix.
2013-05-16 12:42:45 -07:00
wiredfool
f6381ba00c
Added cleanup method to prevent memory leaks from truncated jpeg decodes
2013-05-15 21:16:37 -07:00
wiredfool
454a914b56
Whitespace, 8 space tabs -> 4 spaces
2013-05-15 19:57:45 -07:00
wiredfool
37359369ce
Code to ensure buffer space for exif write and jpeg_write_scanline calls, tests, corrected buffer length calculation
2013-05-14 22:29:31 -07:00
wiredfool
11ce826121
mixed 8 char tabs & spaces -> spaces
2013-05-14 20:45:07 -07:00
Evert Rol
8e74b50e0f
Fix issue #193 : remove double typedef declaration.
2013-04-17 14:27:07 +02:00
Sandro Mani
e2c62ff1d2
Fix warning: pointer targets differ in signedness
2013-04-12 17:54:10 +02:00
Alex Clark ☺
21562761ac
Merge pull request #179 from manisandro/quantization
...
Make quantization code more portable
2013-04-09 06:14:03 -07:00
Sandro Mani
07f632194d
Make quantization code more portable
2013-04-08 00:52:15 +02:00
homm
ebb9029fbe
add parentheses to avoid warnings
2013-03-27 23:19:04 +04:00
homm
a511ef8b05
move declarations to make ANSI compilers happy
2013-03-27 23:18:10 +04:00
homm
a83ef0f0ed
≈20% faster, 2 times more precisely (0.17% difference against 0.37%)
2013-03-26 01:15:18 +04:00
homm
af96b5d4b2
Precision improvement. No performance affected.
2013-03-25 00:06:02 +04:00
homm
0663e14444
speedup. divisions replaced by shifts.
2013-03-23 16:54:02 +04:00
homm
e88490b4f2
Precision improvement. ≈60% performance lost
2013-03-23 14:26:14 +04:00
homm
c39a51bcf0
Significant performance improvement of alpha_composite
function.
2013-03-23 05:46:39 +04:00
Sandro Mani
b57c2ae0e9
Squash a memory leak
2013-03-18 00:54:54 +01:00
Alex Clark ☺
a6792ff7e4
Merge pull request #134 from cgohlke/patch-4
...
Disable msvc10 compiler optimizations for topalette and tobilevel
2013-03-15 05:08:14 -07:00
Christoph Gohlke
bb61c7633a
Disable msvc10 compiler optimizations for topalette and tobilevel
...
Fixes issue #90
2013-03-14 23:35:02 -07:00
wiredfool
b5335c0cf3
Switching to strncpy, fixing potential buffer overflow in palette as well
2013-03-14 20:46:23 -07:00
wiredfool
66965b6bb4
fix buffer overflow for YCbCr histograms
2013-03-14 20:46:23 -07:00
wiredfool
d98abd877b
merge to master
2013-03-14 14:38:49 -07:00
wiredfool
7d99141405
force seek to beginning of file
2013-03-14 13:25:23 -07:00
Christoph Gohlke
26c037a08d
Disable debug prints in g4 tiff decoder
2013-03-14 09:03:18 -07:00
Alex Clark
990f5ddd15
Add contributors ; rename Tiff.h, fixes #103
2013-03-13 21:37:42 -04:00
Christoph Gohlke
9f09a9253c
Fix compile error with msvc
2013-03-13 17:33:16 -07:00
wiredfool
e83dbaccce
scaling back on redefinitions
2013-03-13 15:11:01 -07:00
wiredfool
35ce34a5fa
enabling debug build to get better info on travis errors
2013-03-12 22:54:13 -07:00
wiredfool
7226d0dc26
Merge branch 'master' into g4_support
2013-03-12 22:24:36 -07:00
Alex Clark ☺
d6f597a1ad
Merge pull request #95 from olt/pil-png-transp-backport
...
Backport PNG/ZIP improvements from PIL repo
2013-03-12 03:43:06 -07:00
Oliver Tonnhofer
d4a93754ee
release GIL during Image.fill
2013-03-11 20:45:15 +01:00
Oliver Tonnhofer
6537ba19c3
backport PIL's PNG/Zip improvements
...
- add new FASTOCTREE quantizer with alpha support
- make ZIP compress level and type configurable
- support reading/writing PNGs with paletted alpha
source 3637439d51
2013-03-11 20:33:04 +01:00
wiredfool
5ba6564e26
initial merge of wiredfool/Python-Imaging-Library-G4-Tiff-Support
2013-03-08 19:51:59 -08:00
wiredfool
e782fe721e
initial merge of wiredfool/Python-Imaging-Library-G4-Tiff-Support
2013-03-08 19:51:10 -08:00
Christoph Gohlke
cee97b83cc
64 bit proof ImagingNew
2013-03-08 11:03:43 -08:00
etienne
55f2dc7b0b
Added quantization tables and subsampling options to the JPEG encoder.
2013-03-06 20:23:02 -05:00
Sandro Mani
416d5f70af
Cast hash table values to unsigned long
2013-02-18 16:48:46 +01:00
Sandro Mani
8c7c373676
Fix buffer overflow
...
This patch was carried by fedora for python-imaging
See https://bugzilla.redhat.com/show_bug.cgi?id=703212
2013-02-06 00:51:25 +01:00
d-schmidt
addf0f4d95
Added possibility to save exif information in jpeg-files
2013-01-10 21:36:21 +01:00
Brian Crowell
4459715b6e
py3k: Fix strict aliasing warnings under Python 3
2013-01-10 08:46:37 -06:00
Tom Payne
9d35947363
Avoid rounding error in Image.alpha_composite
2012-12-19 14:25:22 +01:00
Tom Payne
e414c66070
Add Image.alpha_composite
2012-12-04 16:44:26 +01:00
Lars Yencken
155347fe87
Fix a bug in quantize() causing PIL crashes.
...
From German Bravo's Image-SIG post:
http://mail.python.org/pipermail/image-sig/2012-June/007047.html
2012-09-05 13:23:57 +10:00
Matti Picus
2ba3bf681d
UNDEF more types before including windows headers
2012-03-09 00:00:04 +02:00
Alex Clark
9a640e3157
Forking PIL
2010-07-30 22:52:47 -04:00