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日

悬赏问题

  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?