RicardoM.Lu1 2023-04-06 09:36 采纳率: 81.5%
浏览 54
已结题

在编写PDF转图片的代码时遇到问题

在编写PDF转图片的代码时遇到问题
我的需求是:上传一份文件。然后有一个判断,如果是图片则做一系列处理然后给AI能力,如果是PDF则先转化成图片再做以上步骤。
现在的问题是,我在网上搜索的教程都是只能转化本地保存的PDF,这种传输过来的要怎么处理呢?

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2023-04-06 12:40
    关注

    AI支持什么格式的图片数据?支持2进制数据可以用pypdfium2将pdf每页内容处理成2进制数据后传递给AI。

    from flask import Flask, request,render_template
    import pypdfium2 as pdfium
    import io
    
    
    app = Flask(__name__)
    
    @app.route("/upload", methods=["POST"])
    def save_file():
        file = request.files['file']
        bindata=file.read()#文件2进制数据
        suffix=file.filename.lower().split('.')[-1]
        returnValue=""##图片识别后返回给客户端的内容
        if suffix=="pdf":#pdf文件处理
            pdf=pdfium.PdfDocument(bindata)
            n_pages=len(pdf)#页数
            for i in range(n_pages):
                page=pdf[i]
                bitmap=page.render(scale = 300/72)#300dpi,更大尺寸改这里
                pil_image = bitmap.to_pil()#PIL.Image.Image
                output = io.BytesIO()
                pil_image.save(output, format='JPEG')
    
                bindata=output.getvalue()##图片2进制
                #将2进制传递给AI处理后赋值给returnValue
    
        elif suffix in['jpg','jpeg','gif','png']:
            #将2进制传递给AI处理后赋值给returnValue
            pass##图片处理
    
    
        return returnValue#返回给客户端
    
    @app.route("/", methods=["GET"])
    def index():
        return render_template("index.html")
    
    if __name__ == '__main__':
        app.run(host="0.0.0.0", port=5000, debug=True)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月7日
  • 已采纳回答 4月7日
  • 创建了问题 4月6日

悬赏问题

  • ¥20 请用MATLAB画含有二重积分和累加求和的随时间t变化的函数图像,不知如何把二重积分加到循环里,请解答一下
  • ¥15 kali终端update时出现这样的情况
  • ¥15 matlab调用stl文件时报错说内存不足
  • ¥20 医学图像格式、医学图像后处理
  • ¥15 MATLAB中的矩阵分离问题
  • ¥15 服务端可运行语言,解析unity文件
  • ¥15 英飞凌TC387使用MCAL唤醒TJA1145问题
  • ¥15 android tv图标显示异常
  • ¥20 (标签-AR|关键词-预测分析)
  • ¥15 QT IFW 自定义界面添加lineedit小键盘输入数字无效果