通过CharLS C++库为Python实现的JPEG-LS
项目描述
pyjpegls
注意
这是一个基于原始CharPyLS仓库的分支,创建这个分支是为了能够添加修复和适配,因为原始仓库已经不再维护。本文件的其余部分与原始readme文件相同。
通过CharLS C++库为Python实现的JPEG-LS
我编写了这个接口,以便能够轻松地从我的Python应用程序中访问出色的JPEG-LS无损图像压缩算法。我不需要读取/写入其他人的JPEG-LS图像文件,而是需要压缩应用程序内部的一些数据结构。这些数据在性质上类似于灰度图像,因此利用我在codeplex.com上找到的现有CharLS C++库是一个容易的选择。我最终还为我的一些单元测试添加了一些基本的文件I/O功能,这就是为什么我在下面列出Pillow作为依赖项的原因。
我已经在Windows 7 x64、Windows 8 x64和Ubuntu x64上测试了此代码。请注意,尽管这个包的名字有点奇怪“CharPyLS”,但您应该将其导入为“jpeg_ls”。以下是一个使用此工具将图像压缩到内存中的缓冲区的快速示例。有关更多详细信息,请查看源代码中包含的示例。
# Read in an image from an existing PNG file.
fname_img = 'test/image.png'
data_image = data_io.read_PIL(fname_img)
# Compress image data to a sequence of bytes.
data_buffer = jpeg_ls.encode(data_image)
# Sizes.
size_png = os.path.getsize(fname_img)
print('Size of RGB 8-bit image data: {:n}'.format(len(data_image.tostring())))
print('Size of PNG encoded data file: {:n}'.format(size_png))
print('Size of JPEG-LS encoded data: {:n}'.format(len(data_buffer)))
# Decompress.
data_image_b = jpeg_ls.decode(data_buffer)
# Compare.
is_same = (data_image == data_image_b).all()
print('Restored data is identical to original: {:s}'.format(str(is_same)))
上述示例生成的输出应如下所示
Size of RGB 8-bit image data: 5038848
Size of PNG encoded data file: 2409950
Size of JPEG-LS encoded data: 2088357
Restored data is identical to original: True
关于JPEG-LS
- 来自维基百科文章:JPEG-LS(ISO-14495-1/ITU-T.87)是一种从惠普LOCO算法派生出的被接受的无损图像压缩标准。
- 来自CharLS codeplex网站:CharLS是对JPEG-LS标准进行优化的无损和近似无损图像压缩的实现。JPEG-LS是一个低复杂度的标准,与JPEG 2000压缩比率相匹配。在速度方面,CharLS优于开源和商业JPEG LS实现。
依赖项
- Numpy
- Cython(仅用于构建和安装,不是日常使用)
- Pillow(PIL的友好分支,在本例中用于文件I/O示例和单元测试)
- CharLS(源代码作为子文件夹包含)
关闭
pyjpegls-1.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 010300754163f4a68f65e6d5ae463080ab1e54d70fd3a1f7d6520db39dfccd96 |
|
MD5 | 052e05965ece3c983ddbb2a85fc81181 |
|
BLAKE2b-256 | bc6db07db11457745f1bf40b279ccd23d2245a3f74f0f7c980c741fac3cebe57 |
关闭
pyjpegls-1.4.0-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | df98163d03e6427c815ad6010df42955cf4b10d674fe9b3e0189699605fc9b86 |
|
MD5 | 52cffd06f37259ba45b7247b24f5e40a |
|
BLAKE2b-256 | 5b47f88c71f01ac25ab6bebb15f833d10c2b1368b5d2bc9efa4fc487b687075e |
关闭
pyjpegls-1.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e07b9fff4e0fc835342ed526cfc91de2b2466fd87ba897ec70fb52beeb068ed0 |
|
MD5 | 9f4d966a8baf68a72bf18b65f5566e8e |
|
BLAKE2b-256 | de6afb77db54cb32a5adcbed0176e20c4d6d970a29b28fc386d918c35ecfd3c8 |
关闭
pyjpegls-1.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 60b76e635904d78677a0ef5f31e666e84241d7fd925ac6afb1bbff554cb195b8 |
|
MD5 | 176f820eb39171e63ad7cea1e9dc214d |
|
BLAKE2b-256 | 237ed2ee6c51970c2db16e5c78b587ae793593a3c2eb82aa90df918acf26d449 |
关闭
pyjpegls-1.4.0-cp312-cp312-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2eb5ecbb31c9543a2b239e6275ac3f0a8f9298317e05b6250b378548d8344855 |
|
MD5 | 192df3fbc832830956738ab30be76cbd |
|
BLAKE2b-256 | 23f11c75a5e71c1ac9ff66f4e5c63fa6f7586505ebfe21cff3dd7bfbc9d4ec60 |
关闭
pyjpegls-1.4.0-cp312-cp312-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 396945723b9a587bc19f8dde9d1463e1eae65ca14b1b70899d231f6e22f01c58 |
|
MD5 | 050978cca308c8f2907372f38aca2e50 |
|
BLAKE2b-256 | ad4f01ce84e8b2f0307cea06fe4a2340be0709b9822b8373f49a35949a839cf2 |
关闭
pyjpegls-1.4.0-cp311-cp311-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 257b81b1cb3957666716d30a1a05f42ab8e5976d10a3ad581124bc5502047950 |
|
MD5 | 2c291a451ae17333e3e5b80a899300c5 |
|
BLAKE2b-256 | 98db94088ba8ea40e129d0bcf4c2f0409fcf9da8cae0a239f157e4290fea03aa |
关闭
pyjpegls-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 82445185a7d00356c3b98759200257c0c875a57b0127321e9a4ba811d5d9fdef |
|
MD5 | 42f7f71752fc811f51ebf543e6da475b |
|
BLAKE2b-256 | 49dec0ab028b79d72ca99b8db50dc3373224c8997bf2164211df633de6b21f45 |
关闭
pyjpegls-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 387bd204d0c25fb40c9743e7c337d96e618419e7b750e0e2f3e2661dc02ddf96 |
|
MD5 | 618431d67e38ab8cf4a1c923f94a6939 |
|
BLAKE2b-256 | a7adf01a1ba451d52c9c5c8277ffc43490d95e306c596cd2fc64f6d20ad98399 |
关闭
pyjpegls-1.4.0-cp311-cp311-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 991ce9a393390e60125468b173fd0fb22ed9f1e79bd3148e83ab022a3b18ebe3 |
|
MD5 | e4ae5301c41eec00dc08d2275d5165da |
|
BLAKE2b-256 | 1cae8b727bfea02b3ee51b943d5d1eec9e4c3e7ba96cce5bd2d1cba197ff4502 |
关闭
pyjpegls-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6d43b9d1b47b8305e8d7c19445ce005c7c93cd269996f85338905624e6bb7193 |
|
MD5 | ffbda88fdef647c2cf15e43ce40761c1 |
|
BLAKE2b-256 | 0915233d33ae3637f1b7d2e0b914aa12879518f1477a1cb26952844e534b6412 |
关闭
pyjpegls-1.4.0-cp310-cp310-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 072516b081a97bce0503a543b343c2e96275478e67dec42412a26010a856499e |
|
MD5 | b9155fb80b648fef3ea67d5739ad8ea2 |
|
BLAKE2b-256 | ad0e62135ee27c8bc2be2cb97f22d2f545f912d4d6ba02ee44c53d2495d0a1fa |
关闭
哈希值 for pyjpegls-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2cce0adc0e848cef8f070a8bcec8e610eeb4e0205aece1aa48e4a91e399623f7 |
|
MD5 | 110c4a38445caab3142e1ad9857ececb |
|
BLAKE2b-256 | 8dfd0ecc693265ed70038378c2f116d85b8fd376b9dfe023b23657e3ae90c08d |
关闭
哈希值 for pyjpegls-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e1c2fe1a1abe4d6400bd2140c780db57d55c8ecf9d08a103aafb92c81c531b3b |
|
MD5 | 8b67dd7a93761cf03a360f53824ad795 |
|
BLAKE2b-256 | 9e92afba4685e09f63a3c9b9dcd7c5a21e6b062833baa151c7e554932e6f84d0 |
关闭
哈希值 for pyjpegls-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7a26e62cc8aa36764baaa09bcfc1577181f2eef8846974213f787d27e308e990 |
|
MD5 | 2da8318d5425eab4d86cbdd55a97bc26 |
|
BLAKE2b-256 | f8bdb92151d7fe9cef26d755c6feb2ac2df6048a430e72485ea5e3493c54d93f |
关闭
哈希值 for pyjpegls-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 13c270b34876ff1c4c21d7d0543e24c502ee1730d9504f2b790606522dc4d627 |
|
MD5 | e2aff3b3d4094eed5e1d33d10fe1811b |
|
BLAKE2b-256 | 540e0092d3ef4d100256480a1c12160e9859d7b38eeccd562e79a9b551039cd8 |
关闭
哈希值 for pyjpegls-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a33257e19c452af359f5de81eeb15240b1469c0bfd1edd0ac7d55b66af2fd6d9 |
|
MD5 | 1d8bcba838743801e25ef42bf3e4d292 |
|
BLAKE2b-256 | 26dfbb1fc382650ea76fa95c8a10c6e2fbdf1387e00aa738e14a1387c3a70cc5 |
关闭
哈希值 for pyjpegls-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a83ccbc5893764db42021760e0ca25e664bf17061418cd476cd2051b784263a4 |
|
MD5 | 0eeac5837f2f63b084c44e0d7f8647fc |
|
BLAKE2b-256 | 0adbe22aff5ea7f9992be5cf848858ba250e239da1eafbcb725ab45f7bb4dace |
关闭
哈希值 for pyjpegls-1.4.0-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4ed05b7cdff0062f08a30349a3b852379b9b6479b21d209cf3e6acb1b033a9d7 |
|
MD5 | 23556dd8bf0ca60fad915551138645a1 |
|
BLAKE2b-256 | d3528e1bdf47f32b6b3fccf3c893df06d6136c902a0467b5865c6541ed888531 |
关闭
哈希值 for pyjpegls-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 64098550fd4807b3e94cc1e8fe1530cd2f557ebb8d8b703d88504a81e10a9eaf |
|
MD5 | 676054eccdc22e2bc19dc184e6f9b446 |
|
BLAKE2b-256 | 4a91ef4634d011012696f1c12ac98163f554a9cbdffde869b90b64af734c1898 |
关闭
哈希值 for pyjpegls-1.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d0b7225b29bd66edaac8326600a068c13d6b19a7dc089bbd6abd357be35393f9 |
|
MD5 | 2ec442df280092979152ed154b2711bc |
|
BLAKE2b-256 | f1f000c7521d971f1885a2aa06cb3280e54ab457ee308f51a4119ba2163834bd |
关闭
哈希值 for pyjpegls-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0b9674b44788d8e463f5f0b670eee0d456ffc7af0fdefadc41ad54b399662bf0 |
|
MD5 | e8ca47c8e4bcdf57f8c4b88b728b4acc |
|
BLAKE2b-256 | a389e00d198b10192037d4392bbbdf25c8e07ca2035c654bac2f4226a92095ec |
关闭
哈希值 for pyjpegls-1.4.0-cp38-cp38-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 488b0f77017493110dca36e288c5147a4d2a70c9aa0c86c5fd5be8f0a9279979 |
|
MD5 | 827683a7ee817c195fda758439e4919b |
|
BLAKE2b-256 | 06fd043c82620c0c0acd242d547591f2021b00d51e1f623afb92fe101ef202ce |
关闭
哈希值 for pyjpegls-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ddf954ca781daf3a2f4a3dee2529dd2ef5be12a1fc1304121e61942b247eeed2 |
|
MD5 | 5efd0ea3bb409104e8062e20de1f1ac5 |
|
BLAKE2b-256 | d30f96e7023622fe50f4e417cbc53fa9dcdc86dd9c7163e5e1037657e87c1423 |