python jpg png_用Python将BLOB图像转换为PNG、JPG

我在Oracle中有几个blob图像,所以我用python阅读它们。

我可以用我的代码正确地读取和转换来自某个table1的图像,但是当切换到table2时,我不能执行相同的代码,因为我得到了以下错误。在

cannot identify image file <_io.bytesio object at>

这是我的代码:import pandas as pd

import cx_Oracle

from PIL import Image

#[connection to database with connecting string `conn`]

#[query to acces 1 single image]

result = pd.read_sql(query, conn) #connection to db

img = result["IMAGE"][0].read() # reading the first BLOB result

pre_img = io.BytesIO(img)

Image.open(pre_img)

这段代码运行得很好,所以唯一的问题是当我试图从表1中读取图像时。同样在sqldeveloper,我可以预先显示表1中的照片,但不能使用table2。数据类型是BLOB,如Oracle中的describe(表)所示。在

可以找到img的值here

22026c64574b31d7089d2c5d00ec9700.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,blob通常指二进制大对象(Binary Large Object),也就是一些比较大的二进制数据。在处理图像、音频、视频等多媒体数据时,blob是非常常见的数据类型。 在Python中,我们可以使用第三方库如OpenCV、Pillow等来处理blob数据。通常,我们可以将blob数据读入内存,然后使用相应的库进行解码、处理,最后再将处理后的结果存储为blob数据或者其他格式的数据。 以下是一个使用OpenCV库读取和处理图像blob数据的示例代码: ```python import cv2 import numpy as np # 读取blob数据 with open('blob.dat', 'rb') as f: blob_data = f.read() # 转换为numpy数组 data_array = np.frombuffer(blob_data, dtype=np.uint8) # 解码为图像 img = cv2.imdecode(data_array, cv2.IMREAD_COLOR) # 处理图像 gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将处理后的图像编码为blob数据 ret, encoded_img = cv2.imencode('.png', gray_img) # 将编码后的数据写入文件 with open('processed_blob.dat', 'wb') as f: f.write(encoded_img) ``` 这段代码首先读取了一个名为`blob.dat`的二进制文件,然后使用`numpy`库将其转换为`numpy`数组。接着,使用`OpenCV`库的`imdecode`函数将数组解码为图像。然后,对图像进行处理,这里我们将彩色图像转换为灰度图像。最后,将处理后的图像使用`imencode`函数编码为`.png`格式的二进制数据,并将其写入一个名为`processed_blob.dat`的文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值