RicardoM.Lu1 2023-04-06 09:36 采纳率: 80.6%
浏览 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 云卓h12pro 数传问题
  • ¥20 请问有人知道怎么用工艺库里面的sdb文件通过virtuoso导出来library里面每个cell的symbol吗?
  • ¥20 海思 nnie 编译 报错
  • ¥50 决策面并仿真,要求有仿真结果图
  • ¥15 springboot接入微信支付SDK
  • ¥50 大区域的遥感影像匹配 怎么做啊
  • ¥15 求解答:pytorch跑yolov8神经网络受挫
  • ¥20 Js代码报错问题不知道怎么解决
  • ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
  • ¥20 halcon 图像拼接