python - 如何使用正确的 MIME 类型和 sRGB 颜色配置文件将 numpy.ndarray 保存为 cv2 或 PIL 中的图像?
问题描述
我正在尝试将 a 保存numpy.ndarray
为图像。它似乎有效,但是当我在 Chrome 中转到“在新选项卡中打开图像”时,Chrome 会下载图像而不是在新选项卡中显示它。
我的搜索最初让我相信这是一个 MIME 类型问题,但是我看过的所有检查员都说它的 MIME 类型为image/jpeg
. 也许这只是从文件扩展名中推断出来的——我不知道如何检查。
我试过同时使用 cv2 和 PIL,结果相同。
Image.fromarray(img).save('/output.jpg', quality=95) # PIL
cv2.imwrite('/output.jpg', img) # cv2
我还可以从元数据检查员那里得知该图像没有颜色配置文件。我可以看到 PIL 有一个选项可以在image.save()
方法中设置配置文件,但是我能找到的所有示例都从原始图像中获取配置文件。例如
im.save(filename, 'jpeg', icc_profile=im.info.get('icc_profile'))
就我而言,我是从一个数组构建的,所以我无处可从。
解决方案
推荐阅读
- android - 单击即可隐藏 AppBarLayout 和 BottomNavigationView
- google-chrome - 通过 XMLHttp 发送两个缓冲区
- python - Django:从 CSV 创建数据库表时出现 KeyError
- java - 单击两次按钮时如何阻止 Mediaplayer 播放音频文件两次
- c# - 从列表视图中删除所选项目后,绑定不会改变
- c - 尝试在文件中的最后一个 \n 之后读取时,getc() 崩溃
- javascript - 使用 getElementsByTagName 仅选择特定链接的问题
- dart - 如何在 Dart 中一次性获得满足条件的列表中的第一项?
- javascript - 引导导航栏下拉菜单不起作用 Rails
- java - 如何匹配引号和数字之间的文本