Python 为什么如果我用魔杖从pdf中提取图像jpg,它会在文本上给我一个黑色背景

Python 为什么如果我用魔杖从pdf中提取图像jpg,它会在文本上给我一个黑色背景,python,ocr,rgb,cmyk,wand,Python,Ocr,Rgb,Cmyk,Wand,我对一些pdf文件有问题。我需要将它们转换为jpg图像,使其可用于OCR,但当我转换其中一些图像时,魔杖会将我转换为jpg,因为文本上有黑色背景。我发现这是一个关于空间颜色的常见问题。这似乎发生在word文件转换为pdf文件时,其中空间颜色变成了CMYK。Tesseract OCR仅接受空间颜色RGB。我已经编写了一个转换的python脚本,但我想解决这个问题。你能帮我吗?谢谢 原版pdf 已将pdf转换为jpg这是我的代码: def convert_pdf(pdf_file): #

我对一些pdf文件有问题。我需要将它们转换为jpg图像,使其可用于OCR,但当我转换其中一些图像时,魔杖会将我转换为jpg,因为文本上有黑色背景。我发现这是一个关于空间颜色的常见问题。这似乎发生在word文件转换为pdf文件时,其中空间颜色变成了CMYK。Tesseract OCR仅接受空间颜色RGB。我已经编写了一个转换的python脚本,但我想解决这个问题。你能帮我吗?谢谢 原版pdf 已将pdf转换为jpg这是我的代码:

def convert_pdf(pdf_file):

    # Get name file
    title = os.path.splitext(os.path.basename(pdf_file))[0]
    basename = os.path.basename(pdf_file)
    pdf = wi(filename=pdf_file, resolution=100)
    pdfImage = pdf.convert("jpg")
    outputPath = PATH_IMAGES+"/" + basename
    if not os.path.exists(outputPath):
        os.mkdir(outputPath)

    i=1
    for img in pdfImage.sequence:
        page = wi(image=img)
        page.save(filename=outputPath+"/"+title+"(*page="+str(i)+"*)"+".jpg")
        imagePathConverted = outputPath+"/"+title+"(*page="+str(i)+"*)"+".jpg"
        '''image = Image.open(imagePathConverted)

        if image.mode != 'RGB':
            rgb_image = image.convert('RGB')
            rgb_image.save(imagePathConverted)'''
        i += 1

    return outputPath

解决方案是在调用save之前设置这些选项:

page = wi(image=img)

page.background_color = Color('white')
page.alpha_channel = 'remove'

page.save(...)

多亏了堆栈溢出回答。

你能发布一些预期结果和实际结果的图片吗?当然可以。我编辑了添加照片的帖子,你使用了什么代码产生了这个问题?你试过使用在线转换网站吗?我用我使用的代码发布。我不能使用在线转换一个网站,因为它是一个工作项目,所以我试图解决这个问题。如果你的原始PDF有透明度,你试图保存到JPG,那么它将是黑色的,因为JPG不支持透明度。因此,要么保存为PNG,要么在白色背景上展平光栅化PDF。你可以发布一个链接到你的原始PDF,而不是PNG的等价物吗?