Commit Graph

576 Commits

Author SHA1 Message Date
Benjamin Gilbert
4b422db243 Add keep_rgb option to prevent RGB -> YCbCr conversion during JPEG write
libjpeg automatically converts RGB to YCbCr by default.  Add a keep_rgb
option to disable libjpeg's automatic conversion of RGB images during
write.
2023-12-13 18:26:35 -06:00
Andrew Murray
4b308dc2bf
Merge pull request #7488 from bgilbert/jpeg-restart
Allow configuring JPEG restart marker interval on save
2023-11-14 23:42:50 +11:00
Hugo van Kemenade
556dd1e15c
Merge pull request #7535 from hugovk/add-3.13 2023-11-12 00:34:12 +02:00
Hugo van Kemenade
9b88cf5ad9 #ifdef _UNISTD_H -> HAVE_UNISTD_H 2023-11-08 18:48:40 +02:00
Hugo van Kemenade
95eef25aca Fix for Python 3.13: explicitly include unistd.h 2023-11-08 17:52:43 +02:00
Benjamin Gilbert
e572722479 Allow configuring JPEG restart marker interval on save
libjpeg allows specifying the marker interval either in MCU blocks or in
MCU rows.  Support both, via separate parameters, rather than requiring
callers to do the math.

Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
2023-10-31 17:47:25 -05:00
Benjamin Gilbert
4d7372bfd0 Implement streamtype=1 option for tables-only JPEG encoding
We already support streamtype=2 to skip producing JPEG tables, but
streamtype=1, which skips everything but the tables, was never implemented.
The streamtype=1 stub code dates to Git pre-history, so it's not
immediately clear why.  Implement the missing support.

jpeg_write_tables() can't resume after a full output buffer (it fails with
JERR_CANT_SUSPEND), so it might seem that Pillow needs to pre-compute the
necessary buffer size.  However, in the normal case of producing an
interchange stream, the tables are written via the same libjpeg codepath
during the first jpeg_write_scanlines() call, and table writes aren't
resumable there either.  Thus, any buffer large enough for the normal case
will also be large enough for a tables-only file.

The streamtype option isn't documented and this commit doesn't change that.
It does add a test though.

Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
2023-10-24 20:30:45 -05:00
Andrew Murray
d682c18ded Use "gray" more consistently 2023-10-19 19:12:01 +11:00
Andrew Murray
4e7f61f459
Merge branch 'main' into bgr 2023-10-06 18:50:25 +11:00
Andrew Murray
b8c30655cc Include CMYK to RGB convert as unpacker 2023-10-06 16:05:03 +11:00
Andrew Murray
787daa9f19 Merge branch 'main' into cmyk2rgb 2023-10-06 15:52:32 +11:00
Hugo van Kemenade
6f73691564
Merge pull request #7257 from radarhere/i16_point 2023-10-05 12:54:25 -06:00
Hugo van Kemenade
09605ff48e
Merge pull request #7413 from radarhere/bc5s 2023-10-05 09:48:12 -06:00
Hugo van Kemenade
5f04b3d278
Merge pull request #7289 from radarhere/undefined_palette 2023-10-05 09:31:02 -06:00
Hugo van Kemenade
f76b63d016 Add end-of-file-fixer to pre-commit 2023-09-25 16:45:38 +03:00
Andrew Murray
352bcaac74 Set blue channel to 128 for BC5S 2023-09-21 16:38:45 +10:00
Andrew Murray
e57b08affd Move strcmp outside of while loops 2023-09-21 16:38:19 +10:00
Andrew Murray
96e3534034 Corrected converting signed values to unsigned in BC5S 2023-09-16 13:53:10 +10:00
Andrew Murray
9f54a11a9c Improve efficiency when a radius is zero 2023-08-12 18:17:07 +10:00
Andrew Murray
c167d7a269 Allow GaussianBlur and BoxBlur to accept a sequence of x and y radii 2023-08-12 12:09:20 +10:00
Hugo van Kemenade
95257dff87
Merge pull request #7299 from radarhere/pdf 2023-08-04 11:43:09 +03:00
Andrew Murray
00cec60c35 Added CMYK to RGB unpacker 2023-07-29 21:05:33 +10:00
Andrew Murray
5fa05623ff Added BGR;15, BGR;16 and BGR;24 unpacking 2023-07-26 20:09:40 +10:00
Andrew Murray
3230270aa7 Added BGR;15, BGR;16 and BGR;24 access 2023-07-26 20:09:40 +10:00
Andrew Murray
c108d9ddb0 Set alpha channel when saving LA in OpenJPEG 2023-07-22 20:05:31 +10:00
Andrew Murray
577a4d8bf8 Change get_pixel to be specific to images with 2 bands 2023-07-21 21:08:20 +10:00
Andrew Murray
7ffad80294 Removed put_pixel 2023-07-21 20:59:28 +10:00
Andrew Murray
32eec53c43 Removed comment 2023-07-17 23:50:59 +10:00
Andrew Murray
fd310512b9 Set C palette to be empty by default 2023-07-17 23:04:43 +10:00
Andrew Murray
ba9c830b03 Corrected writing I;16 text 2023-07-08 11:30:48 +10:00
Andrew Murray
5e2332a200 Corrected drawing I;16 points 2023-07-05 08:49:56 +10:00
Hugo van Kemenade
0ac3677b56
Merge pull request #7199 from radarhere/tiff_close 2023-06-30 09:27:26 +03:00
Hugo van Kemenade
be4bfaac9e
Merge pull request #7123 from radarhere/apng 2023-06-30 09:24:20 +03:00
Andrew Murray
45c9dcf123 Restored 32-bit support 2023-06-27 14:43:58 +10:00
Hugo van Kemenade
190c53a1b1
Merge pull request #7228 from radarhere/32bit
Removed support for 32-bit
2023-06-24 19:02:00 +03:00
Andrew Murray
d6f19625e8 Removed support for 32-bit 2023-06-23 21:52:00 +10:00
Andrew Murray
17b19b5668 Merge branch 'main' into apng 2023-06-14 11:26:42 +10:00
Andrew Murray
68edbbca94 Merge branch 'main' into int_def 2023-06-14 09:11:41 +10:00
Hugo van Kemenade
c62c514299
Merge pull request #7187 from radarhere/putpalette 2023-06-13 20:10:33 +03:00
Hugo van Kemenade
9d08c8247d
Merge pull request #7180 from radarhere/int64 2023-06-13 20:08:26 +03:00
Andrew Murray
aeb6e9909e Removed unused argument 2023-06-10 15:57:05 +10:00
Andrew Murray
748a4d0fcd Removed unused variable 2023-06-10 14:26:28 +10:00
Andrew Murray
15edb6d625 Fixed signedness comparison warning 2023-06-07 22:33:55 +10:00
Andrew Murray
0835be95cb Added comment 2023-06-05 15:07:11 +10:00
Andrew Murray
e45da2ae17 Do not close provided file handles with libtiff 2023-06-05 11:07:09 +10:00
Andrew Murray
07eccd9798 Fixed calling putpalette() on L and LA images before load() 2023-05-28 06:44:34 +10:00
Andrew Murray
b8719033ca Removed unused INT64 definition 2023-05-23 22:53:16 +10:00
Yay295
f6b516bb06 Adjust C preprocessor block labels
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2023-05-19 08:11:39 -05:00
Yay295
724f266460 change INT16 def failure to an error 2023-05-18 17:49:13 -05:00
Yay295
9da0b58eea move INT8 def to top 2023-05-18 17:49:13 -05:00
Yay295
fbec8f19dd add check for C99+ to use their defs if possible 2023-05-18 17:49:13 -05:00
Yay295
c2527348ec add comment explaining why #define and not typedef 2023-05-18 17:49:13 -05:00
Yay295
e9cfe4b6a2 label preprocessor if..else..endif for clarity 2023-05-18 17:49:13 -05:00
Yay295
6de5e999bd add UINT64 def if INT64 is defined 2023-05-18 17:49:12 -05:00
Yay295
509671c53e fix INT64 def and add warning if not set 2023-05-18 17:49:12 -05:00
Hugo van Kemenade
74a851965c
Merge pull request #7108 from radarhere/filter 2023-05-03 18:18:53 +03:00
Andrew Murray
ff003bfbcc Added unpacker from I;16B to I;16 2023-04-30 14:49:40 +10:00
Andrew Murray
96bdbc4afe Renamed variable 2023-04-29 19:11:02 +10:00
Andrew Murray
ebd3c47425 When saving, allow alpha differences to indicate different frames 2023-04-29 15:02:11 +10:00
Andrew Murray
d0b41da094 Support I mode for BuiltinFilter 2023-04-22 21:22:01 +10:00
Andrew Murray
57bbe6df2c Remove use of deprecated "bpp" member 2023-04-16 23:16:01 +10:00
Andrew Murray
89d2cdfcfa Fixed warning that nLeft is set but not used 2023-03-31 22:30:36 +11:00
Andrew Murray
f8be09612d
Merge pull request #6903 from joshware/jp2k_options
Support custom comments and PLT markers when saving JPEG2000 images
2023-03-29 23:43:54 +11:00
Andrew Murray
2f66d2d6a1 Changed maximum comment length to 65531 2023-03-29 19:25:35 +11:00
Andrew Murray
1fd189164c Renamed "add_plt" to "plt" 2023-03-27 22:38:29 +11:00
Andrew Murray
d5d830dd00 Merge branch 'main' into bgr32 2023-03-25 23:45:48 +11:00
Andrew Murray
176b2a2000 Merge branch 'master' into jp2k_options 2023-03-23 08:57:20 +11:00
Andrew Murray
11d100ce5d Support creating BGR;15, BGR;16 and BGR;24 images 2023-03-20 00:30:10 +11:00
Andrew Murray
9e6ae98362 Dropped support for BGR;32 mode 2023-03-13 17:31:12 +11:00
Andrew Murray
f8d93267e1 Merge branch 'main' into i16n 2023-03-13 14:33:26 +11:00
Andrew Murray
36ee817329 Merge branch 'main' into pdf 2023-03-12 23:31:26 +11:00
Andrew Murray
b84c29a035 Raise an error if co-ordinates are incorrectly ordered 2023-03-01 11:22:35 +11:00
Andrew Murray
b3af769c1a Set alpha channel for OpenJPEG 2023-02-02 20:52:50 +11:00
Andrew Murray
04e8a9b3e7 Removed unnecessary code 2023-01-31 22:32:02 +11:00
Josh Ware
de43bc99c8 Added support for jpeg2000 comments and PLT marker segments 2023-01-19 11:37:14 +11:00
Andrew Murray
173b65d095 Raise ValueError during filter operation as well 2023-01-11 20:02:10 +11:00
Andrew Murray
91b01f4cc2 Return from ImagingFill early if image has a zero dimension 2022-12-30 16:48:33 +11:00
Andrew Murray
4518dc82ba Merge branch 'main' into signed 2022-12-29 09:37:35 +11:00
Hugo van Kemenade
88a81db1c4
Merge pull request #6708 from radarhere/rgba2rgb_
Resolves https://github.com/python-pillow/Pillow/issues/6706
2022-12-28 16:27:31 +02:00
Andrew Murray
a0e1608f4f Support accessing I;16N pixels 2022-12-28 18:58:16 +11:00
Andrew Murray
8cfc25618f Support unpacking I;16N 2022-12-28 18:57:24 +11:00
Andrew Murray
e908e10aab Support packing I;16N 2022-12-28 17:47:38 +11:00
Andrew Murray
700a8e98da Support converting between I;16N and L 2022-12-28 17:47:15 +11:00
Andrew Murray
318b658c9c Initialize unsigned char variables 2022-12-22 17:16:52 +11:00
Sam Mason
eddc9bdcec
switch to #z for comment parameter
* means `comment=None` can be passed directly
* no need to conditionally run `str.encode()`
* clean up checking of whether a comment is passed
2022-12-05 17:46:54 +00:00
Andrew Murray
e50ae85ea4 Use jpeg_write_marker to write comment 2022-12-05 13:57:26 +11:00
Yay295
16994ccc9b
remove unused ImagingAccess->line() method def 2022-11-12 17:15:50 -06:00
Yay295
20f17cc6a7
remove unused ImagingAccess->line() method defs 2022-11-12 17:14:37 -06:00
Andrew Murray
6ddbe4cbf0 Added signed option when saving JPEG2000 images 2022-11-03 18:26:31 +11:00
Andrew Murray
5b4703d615 Added conversion from RGBa to RGB 2022-11-01 08:39:02 +11:00
Andrew Murray
93e5fd4b40 Initialize libtiff buffer 2022-10-29 12:02:03 +03:00
Christoph Gohlke
4ab80f663e
Remove backup implementation of Round for Windows platforms 2022-10-27 08:15:36 -07:00
Christoph Gohlke
d97db54be0
Only use ASCII characters in C source file 2022-10-26 11:17:28 -07:00
Hugo van Kemenade
9bbf56b368
Merge pull request #6418 from hmaarrfk/parallel_matrix_convert 2022-10-25 21:11:22 +03:00
Andrew Murray
28878c68e1
Merge pull request #6449 from ShadelessFox/main
Added DDS BC6 reading
2022-10-11 12:58:24 +11:00
Andrew Murray
78d258f24d Removed gamma correction 2022-10-10 20:48:18 +11:00
Andrew Murray
eef4d1ced1 Moved mode check outside of loops 2022-10-09 08:48:07 +11:00
Andrew Murray
34f61d6d2d Updated redirected URLs 2022-09-23 22:13:50 +10:00
Hugo van Kemenade
0b5c150805
Merge pull request #6497 from radarhere/convert 2022-08-31 17:09:38 +03:00
Andrew Murray
e613271776 Fixed typo 2022-08-27 18:48:47 +10:00