我想使用Python Pillow库将16位灰度数组保存为jp2
(“JPEG2000”)格式。
当我试图在我的Windows机上安装所需的库OpenJPEG时,我碰壁了。documentation不是很清楚...但我假设我需要下载Win64二进制文件,并简单地将它们放到我的路径上(我确实做到了)。
完成后,在Windows上使用Anaconda 4.3.0中的Pillow 4.0.0时,我仍然收到以下错误。
IOError: encoder jpeg2k not available
任何人在那里成功地使用Pillow写入和读取JPEG2000文件,我肯定会感谢一些技巧。
编辑:
下面是失败的代码:
import PIL
import numpy as np
arr = np.ones(dtype=np.uint16, shape=(100, 100))
im = PIL.Image.fromarray(arr)
im.save('arr.jp2')
发布于 2017-02-12 21:04:07
我刚用here的安装程序安装了Pillow。我选择了Pillow-4.0.0.win-amd64-py3.5.exe。在安装过程中,它找到了conda的python并正确地选择了安装位置(它安装在根环境中)。
测试它工作的代码:
from PIL import Image
import numpy as np
arr = np.ones(dtype=np.uint16, shape=(100,100))
im = Image.fromarray(arr)
im.save('test.jp2')
请注意,保存的文件有8个bpp。
发布于 2017-02-12 16:19:08
Anaconda构建Python using不同版本的微软visual studio工具。
这些工具的每个版本都有自己的运行时,这与其他版本不兼容。
Pillow库使用编译后的共享库。您需要使用与构建Python和Pillow时使用的ms visual studio工具完全相同的版本来编译OpenJPEG。
发布于 2019-07-17 18:04:09
以供一般参考。
.so文件的扩展名为.dll (原文如此-- "Windows二进制文件“--动态链接库);是的,该文件必须位于系统路径中的某个位置。
位于路径中允许Windows找到文件,但这还不够。Windows必须被告知它可以做些什么;它是一个可共享的库。这是由以下人员完成的:
1)在二进制文件所在的(子)目录中打开DOS命令提示符,例如C:\LIBS
2)运行regsvr32 filename.dll命令。这会将.dll注册为共享文件(在Windows Registry中),以便Windows知道如何将其加载到内存中,并让用户应用程序访问它。
实际上,您可以从任何目录运行regsvr32 (它是一个系统文件,应该在C:\Windows\system32目录中的某个位置;但在与.dll相同的目录中运行会更方便,因为否则您必须在filename.dll前面加上从C:\到文件所在位置的整个目录树。
您可以在没有目标文件名的情况下运行"regsvr32“,以获得可使用的命令行开关的弹出列表。
https://stackoverflow.com/questions/42184995
复制相似问题