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日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效