最近在做一个解析pdf的活,要求把pdf的图片单独摘出来保存在一个目录下。保存的图片名要求和pdf中的图片名一致,由于我在项目中使用了opencv,就打算直接使用opencv的imwrite函数来保存,结果运行代码,在我指定的目录中没有一张我摘出来的图片。网上搜索才发现。opencv编码解码文本都是用ASCII,人家的文本中压根就没有汉字。后来经过多种尝试后找到一种解决办法,就是把图片从OpenCV 的 BGR 格式的图像转换为 pillow所希望的RGB 格式,转换代码如下
from PIL import Image
import cv2
# 假设 img 是你从 OpenCV 读取的图像数据
img_cv = cv2.imread('example.jpg')
# 将 OpenCV 图像转换为 PIL 图像
img_pil = Image.fromarray(cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB))
# 保存图像
save_path = "D:/图片/保存的图片.jpg"
img_pil.save(save_path)
使用上述代码修正发现保存成功。如下