RicardoM.Lu1 2023-04-06 09:36 采纳率: 82.1%
浏览 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 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭