问题标签 [bytesio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6203 浏览

python - 如何将 numpy 数据预加载到像 io.BytesIO 这样的缓冲区中以使其可搜索?

以下函数基本上返回numpy.ndarray

从 main 调用 的getimage函数:

抛出的错误:

0 投票
2 回答
50642 浏览

python - Convert from '_io.BytesIO' to a bytes-like object in python3.6?

I am using this function to uncompress the body or a HTTP response if it is compressed with gzip, compress or deflate.

However python throws this error message.

on this line:

Essentially, how do I convert from '_io.BytesIO' to a bytes-like object?

0 投票
1 回答
575 浏览

base64 - 如何将散景图转换为 BytesIO 对象以使用 base64 模块对图进行编码

我有一个绘制曲线的plot对象。bokehsin(x)

现在,我不想用某个名称将它保存到某个html文件中,output_file('sine.html')而是想创建一个BytesIO()对象,以便进一步进行base64编码。

我非常需要社区帮助。

我想要的原因是matplotlib我可以将图像导出为BytesIO()对象并使用它顺利地将其重新渲染FlaskDash像这样的应用程序,

我希望与bokeh.

请指导我。

0 投票
0 回答
111 浏览

python-3.x - 使用来自 URL 响应的 PIL 打开特定图像的问题

我正在从 URL 中抓取图像并进行一些操作,然后将它们保存到磁盘。这适用于绝大多数图像,但尽管在浏览器中加载良好,但仍有某些图像 URL 失败。我查看了错误跟踪,但对这里的各种修复都没有运气。以下是提取为失败的示例 URL。

OSError: 无法识别图像文件 <_io.BytesIO object at...>

我认为该文件的格式不同。如需额外参考,该行在以下位置失败:

response = requests.get(urlString,headers={'User-Agent': 'Mozilla/5.0'},timeout=10)

并给出上述痕迹。我敢肯定它可能是一条线,但我把头发扯掉了,所以任何想法都会受到热烈的赞赏!

编辑:

我发现更多链接失败。例如

http://www.excelscientific.com/sealplate.jpg
https://www.bioexpress.com/stibo/web/std.lang.all/52/52/4695252.jpg

我查看了源代码,无法区分任何区别(这些页面上似乎没有任何“内容”只是图像,所以我越来越确信这是图像格式问题。

0 投票
2 回答
1058 浏览

python - 从数据流而不是从文件加载图像

我有一个程序(在 Pyglet 中),我想以字节的形式保存它们的图标,然后将它们转换为临时图像并将它们传递给程序以便能够使用它们。

这是一个字典,其中存在两个图标的数据:

虽然这是将其转换为临时图像并传递给 Pyglet 的脚本的一部分:

我遇到的问题是带有: 的 Pygletpyglet.image.load()需要文件路径而不是文件本身。由于该文件不是物理文件,因此我不知道如何获取它的路径以供 Pyglet 使用。您对如何解决问题有任何建议或意见吗?

编辑:我尝试了从“Torxed”获得的两个答案:

和:

但是在这两种方法中,我得到的都是令人困惑的像素,而不是原始图像。我还修改了获取图像字节打印的方法。在我使用这种方法之前:

我从这里获得的答案: perillaseed 但后来我改为:

如果我去检查新保存的图像,它与原始图像完全一样,所以我手动复制字节字符串,将其插入字典中,它不起作用。以下是视觉结果: 打印字节图像 第一次测试 第二次测试

另外,我想警告一下,我将这两个图标作为 sprite 并旨在更好地查看它们,因为它们在程序的实际图标上太小了。

为了回应snakecharmerb,当你回答你给我的建议时我试过了,但是当他也回答了Torxed时,我得到了他自己报告的错误。

编辑2:

在此处输入图像描述 在此处输入图像描述

我试图用另外两个更改图标(因为我使用的两个仅用于测试,而不是程序的最终图标),但我得到了相同的结果。上面是原来的,下面是新的。

在此处输入图像描述 在此处输入图像描述

字节字符串(new_ico_16):

字节字符串(new_ico_32):

我也以这种方式进行了测试(通过在第一次编辑中修改脚本),但与以前没有不同的结果:

0 投票
1 回答
94 浏览

python-3.x - 使用 MXRecordIO 从字节对象读取

有没有一种方法可以mx.recordio.MXRecordIO用来读取字节对象而不是文件对象?

例如我目前正在做:

但如果可能的话,我宁愿不必将文件写入文件作为中间步骤。我试过使用 BytesIO,但似乎无法让它工作。

0 投票
1 回答
2068 浏览

python - io.BytesIO 非常慢。备择方案?优化?

我在带摄像头的 Raspberry Pi 上运行 Python v3.5 脚本。该程序涉及从视频流中录制视频picamera并从视频流中获取样本帧以执行操作。有时,处理字节缓冲区需要很长时间(20+ 秒)。包含问题区域的代码的简化版本是:

一段时间后,打开字节流所需的时间变得疯狂。在我最近一次运行中,一个实例耗时超过 48 秒! 该图显示了每个周期打开字节流的时间图。 我对代码有问题的区域中的每一行进行了时序测试,我可以确认它是stream = io.BytesIO()导致延迟的行。

当我在此任务期间使用 监控 Raspberry Pi 的 CPU 和内存时psutils,我没有观察到明显的问题。CPU 使用率为 10-15%,虚拟内存使用率约为 24.2%,并且正在使用 0 交换。

除了 Python 程序之外,没有其他用户执行的进程在 Pi 上运行。硬件正在运行带有 GUI 的默认 Raspbian 安装。

由于 Python 程序有 1000 多行,因此我不会在此问题文本中包含超出最小示例的任何内容。如果您想查看上下文信息,请查看此 Gist 和代码

初步搜索表明这是 BytesIO 的一个已知问题。一些针对 Python 的旧错误跟踪(约 2014 年)表明,在 3.5 版本中对某些情况进行了改进。

问题是:

  • 为什么BytesIO这里慢?
  • 是否有另一种更快的流式传输字节的方法?
  • 有没有更好的方法来BytesIO获得我需要的东西?

编辑:我在循环中添加了一行,强制流在每个进程结束时使用 关闭stream.close(),但这似乎无效。我仍然有 20 多秒的流打开时间。

EDIT_2:我从编辑的信息中误读了测试中的值,并错过了具有科学记数法的值。

0 投票
1 回答
66 浏览

python-3.x - 为什么这个字符串没有保存在全局变量中?

我正在使用 Python 和 Kivy 编写应用程序。我有一个绘制图像并将其导出为 png 的函数。我正在尝试使用该图像并将其作为 BLOB 保存在 sql db 中。

我尝试采用的方法是使用 BytesIO 将 png 转换为流,然后将此值(字符串)放入一个变量中,然后我可以将其发送到数据库。

我遇到的问题是,在“本地”函数中,我能够将 png 对象转换为流并打印它,但是当我尝试在函数之外打印相同的变量时,它返回空。

任何洞察力帮助将不胜感激!我认为这是因为我使用函数的内存来转换 png>IO 并且离开函数时它不喜欢它。或者,如果您有任何更好的解决方案,我会全力以赴。

当我在这个函数之外尝试print(driversig)它返回空

我也试过print(str(driversig))

我的全局变量为空。driversig = ''只是以防你想知道。打印时我也没有收到任何错误

0 投票
0 回答
164 浏览

image - 操作系统错误:无法识别图像文件

我收到一个错误。我已经在互联网上尝试了所有以前的解决方案,但它不起作用。我想问题在于image = Image.open(myvar)但没有得到它。

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
196 浏览

bytesio - 字节 IO 和文本文件

这可能是一个愚蠢的问题,但它真的会帮助我理清我的概念。字节 IO 使用字节字符串,这意味着它使用字节数据。并且字节数据不是人类可读的。

因此,当我编写以下代码时:

一个 txt 文件出现在 python rote 目录中,当我打开它时,其中存在文本“hello world”。我的问题是我对字节数据进行了编码。当字节数据仅计算机可读时,为什么我能够在文本文件中将其读取为“hello world”。