首页 > 其他分享 >使用gr.inputs.File(type="fille")输入一个zip包,这个zip包是个图片文件夹,解压并提取其中的图片

使用gr.inputs.File(type="fille")输入一个zip包,这个zip包是个图片文件夹,解压并提取其中的图片

时间:2023-08-25 09:13:23浏览次数:47  
标签:解压 inputs zip temp 文件夹 folder os 图片

要在 Gradio 中使用 gr.inputs.File(type="file") 输入一个包含图片的 Zip 文件,并在函数中解压并提取其中的图片,您可以按照以下步骤进行操作:

  1. 在您的函数中使用 Python 的 zipfile 模块来解压上传的 Zip 文件。
  2. 从解压后的文件夹中获取图像文件,并进行处理。

以下是一个示例代码,演示如何在 Gradio 中实现这个过程:

import gradio as gr
import zipfile
import os
from PIL import Image

def process_images(zip_file):
    # 创建一个临时文件夹来解压 Zip 文件
    temp_folder = "./temp_folder"
    os.makedirs(temp_folder, exist_ok=True)

    # 解压上传的 Zip 文件
    with zipfile.ZipFile(zip_file, 'r') as zip_ref:
        zip_ref.extractall(temp_folder)
    
    # 此时解压出一个文件夹,所有需要再读取一层
    temp_folder = os.path.join(temp_folder, os.listdir(temp_folder)[0])
    # 获取解压后的文件夹中的图像文件
    image_paths = [os.path.join(temp_folder, filename) for filename in os.listdir(temp_folder) if filename.endswith(('.jpg', '.jpeg', '.png'))]

    # 在这里对图像文件进行处理,例如显示它们或进行其他操作
    processed_result = f"解压并处理了 {len(image_paths)} 张图片。"

    # 删除临时文件夹
    # os.rmdir(temp_folder)

    return processed_result

iface = gr.Interface(
    fn=process_images,
    inputs=gr.inputs.File(type="file"),
    outputs="text"
)

iface.launch()

在这个示例中,process_images 函数首先创建一个临时文件夹来解压 Zip 文件,然后使用 zipfile 模块解压文件。接下来,它会获取解压后文件夹中的图像文件,并对它们进行处理。最后,函数会返回一个处理结果,以及在处理完成后删除临时文件夹。

标签:解压,inputs,zip,temp,文件夹,folder,os,图片
From: https://www.cnblogs.com/chentiao/p/17655973.html

相关文章

  • Python教程:Gzip解压缩
    我们将介绍Python中的gzip解压。我们还将介绍如何使用gzip解压来解压压缩的内容。Python中的Gzip解压在Python中为压缩和解压目的建立了许多库,但我们将介绍Gzip库。它是一个流行的数据压缩工具。我们可以使用gzip,通过对数据进行特殊格式的编码来减少文件的大小,这种格式不......
  • js_使用axios请求图片资源, 并读取图片资源为base64格式
    情景再现:今天在写页面时遇到这么一个请求:有一张图片,默认隐藏,要求在该图片加载完毕后,执行取消隐藏的动画.目的是不要在执行动画期间图片有空白的样子.第一个想到的当然是img的onload回调函数.但是天生反骨不爱用行内元素.于是想到使用ajax请求图片资源,再使用FileR......
  • VUE- elementUI使用quill富文本编辑器(编辑文本、上传图片)
    准备工作:安装 yarninstall vue-quill-editormain.js//编辑器importVueQuillEditorfrom'vue-quill-editor'//引入样式import'quill/dist/quill.core.css'import'quill/dist/quill.snow.css'import'quill/dist/quill.bubble.css'......
  • vue中,一个参数是一个图片网络地址,当重新上传一个图片替换原来的图片后,地址没变,但是图
    这个问题可能是由于浏览器缓存导致的。为了解决这个问题,你可以向图片的URL地址中添加一个随机参数,以确保每次加载图片时都会从服务器获取最新的图片。你可以使用类似于以下方式来添加随机参数:<img:src="imageUrl+'?timestamp='+Date.now()"/>这样,每次你更新了图片后,URL中......
  • zip.js
    functiongetUrlVar(variable){varquery=window.location.search.substring(1);varvars=query.split("&");for(vari=0;i<vars.length;i++){varpair=vars[i].split("=");if(pair[0]==variable){re......
  • IntersectionObserver 实现图片懒加载、列表无限滚动等功能
    过去,要检测一个元素是否可见或者两个元素是否相交并不容易,比如实现图片懒加载、内容无限滚动等功能时,都需要通过​getBoundingClientRect()​写大量的逻辑计算或者依靠scroll事件监听等性能很差方式来实现。现在,依靠IntersectionObserver(交叉观察器)我们能非常便捷且高效的实现上......
  • 如何用WinRAR解压文件zip.001
    要合并“分卷.zip.001”~“分卷.zip.018”,步骤如下:新建文本文档,输入:copy/B分卷.zip.*a.zip(如果需要合并的文件为aaaa.zip.001……aaaa.zip.018,就输入copy/Baaaa.zip.*a.zip)将文档保存为批处理文件(如:合并分卷.bat),由于命令中有中文字符,需要保存为ANSI格式  将批处......
  • 如何快速一键批量压缩图片?推荐你一个工具无需登录免费处理!!
    今天给大家推荐一个简单免费的批量压缩图片网站,不用注册,无需付费,一键批量压缩 画好图网站地址:画好图-免费在线图片转换处理画好图可以压缩JPG、PNG、SVG,以及GIF以及更多的图片格式,同时节省空间、保持质量。它可以将原图压缩到非常小,同时保持画质损失非常低。与其他图片压缩......
  • 图片预览组件 (放大 缩小 旋转 鼠标拖动)
    效果图其中的图片初始化不需要如果需要可自行修改一下**完整代码如下**点击查看代码<template><transitionname="zoom"><divclass="previewImage_wrapper"ref="previewImage_wrapper"@wheel="handleScroll"><divclass=&......
  • 直播网站程序源码,Java实现图片压缩
    直播网站程序源码,Java实现图片压缩1、Thumbnailator简介    对于图片处理,JDK中也提供了对应的工具类,不过处理起来会很麻烦,而Thumbnailator是一个Google开源的优秀图片处理的第三方Java类库,处理效果远比JavaAPI的好。    Thumbnailator可以使用很少的代码实现......