0.12.0
What is new?
(compared to 0.11.0)
- Added
J:a:bsampling factor notation.
im = jpeglib.from_spatial(x)
im.samp_factor = "4:4:4"
im.write_spatial("output.jpeg")- Added deep copy for compatibility with numpy array. It makes it easier to use the object in steganography.
cover = jpeglib.read_dct(‘cover.jpeg’)
stego = cover.copy() # deep copy of cover
stego.Y[0,0,0,1] += 1
stego.write_dct(‘stego.jpeg’)- added libjpeg-turbo versions 1.2.0 - 2.0.0 and mozjpeg 1.0.1, 2.0.1 and 3.0.0
- building on Windows
(compared to 0.11.1+)
- Features
jpeglib.opsandjpeglib.Timerremoved, did not fit into the package, moved to imageops - solved the version problems in requirements.
numbaremoved from package requirements
Improvements
- Changed order of coefficients inside block to match other implementations (Matlab, jpegio). Now, it is [num_vertical_blocks, num_horizontal_blocks, vertical_block_size, horizontal_block_size]
- All errors raised in libjpeg are now caught and passed as a C++/Python exception (#3 ).
- Better unittest coverage. Unit tests are executed both on Linux and on Windows.
pathlib.Pathis now accepted as input path- Preparation for operations over Huffman table. Not yet fully functional in the release.
Bugfixes
- Fixed writing DCT coefficients with different than 4:2:2 chroma subsampling
- Fixed dynamic library binding for Windows (#5 ).
- limit for marker segments raised
- full inference of colorspaces and sampling factors in
from_dct - various other fixes