当前位置:首页>python>Python视频裁剪+GIF转换工具

Python视频裁剪+GIF转换工具

  • 2026-06-29 02:37:25
Python视频裁剪+GIF转换工具

在日常工作和生活中,我们总会遇到这样的场景:刷到一段精彩的视频,想裁剪出核心片段用于汇报、朋友圈配图;看到有趣的画面,想转换成GIF动图分享给好友;剪辑短视频时,需要快速截取固定比例的画面,却不想打开PR、剪映等复杂软件,耗时又费力。有没有一款工具,能兼顾美观与实用,既能实现精准的视频裁剪,又能一键转换GIF,还能拥有高级不透明的界面质感?

答案必须是肯定的!今天就给大家分享一款纯Python编写的视频裁剪&GIF转换工具,完全免费、无广告,界面精致大方,操作简单到小白也能上手,功能却全面到超出预期。不同于市面上那些界面粗糙、功能单一的工具,这款工具采用TKinter搭建可视化界面,整体设计简洁高级,无多余冗余元素,不透明的预览区域的搭配清晰的功能按钮,每一处细节都兼顾了美观与实用性,无论是日常办公、自媒体创作,还是个人娱乐,都能轻松满足你的需求。

无需安装复杂的依赖包,只需简单配置,就能实现视频加载、比例裁剪、自定义尺寸裁剪、一键导出裁剪视频、一键转换GIF等核心功能,而且预览实时同步,裁剪区域可视化,让你精准把控每一个细节。更重要的是,这款工具完全开源,你可以根据自己的需求修改代码,自定义界面风格、拓展功能,真正做到“我的工具我做主”。接下来,就让我们一起走进这款精致又实用的工具,看看它是如何实现的,以及如何快速上手使用吧!

一、核心功能拆解:精致外表下的强大实力

这款工具之所以能做到“好看又能打”,核心在于它将可视化界面与实用功能完美结合,每一个功能都经过精心设计,兼顾了操作便捷性与效果精准度。主要核心功能分为三大模块,覆盖视频处理的常见需求,一起来详细了解:

1. 可视化界面模块:精致高级,操作零门槛

界面是工具的“门面”,这款工具在界面设计上追求简洁高级,拒绝粗糙冗余。采用TKinter的ttk组件搭建,搭配合理的字体、间距和颜色,整体风格统一、美观大方。顶部设置清晰的功能按钮,中间是超大尺寸的预览区域,底部是裁剪设置和状态提示,布局合理,一目了然。

预览区域采用凹陷边框设计,增强视觉层次感,同时设置固定尺寸并支持自适应缩放,保证视频画面清晰不模糊,裁剪区域用绿色边框实时标注,让你直观看到裁剪范围。状态提示栏实时显示当前操作状态,从“请选择视频”到“已加载视频”,再到“操作完成”,每一步都有清晰反馈,避免误操作。

此外,界面支持窗口缩放,适配不同尺寸的电脑屏幕,按钮采用适中的padding设计,点击手感舒适,整体无透明冗余元素,视觉体验拉满,完全不输市面上的付费工具。

2. 视频裁剪模块:多比例适配,精准裁剪无偏差

视频裁剪是工具的核心功能之一,这款工具支持多种比例裁剪和自定义尺寸裁剪,满足不同场景的需求。内置1:1、16:9、9:16、4:3、3:4五种常用比例,点击对应的单选按钮,就能自动计算裁剪区域,无需手动调整,适配朋友圈、短视频、汇报PPT等不同场景的尺寸要求。

如果内置比例无法满足需求,还可以通过“自定义像素”选项,手动输入宽度和高度,工具会自动居中裁剪,保证画面完整性。裁剪区域实时同步预览,修改比例或自定义尺寸后,预览画面会立即更新,绿色边框标注的裁剪范围清晰可见,让你精准把控裁剪效果,避免裁剪偏差。

裁剪完成后,支持一键导出为MP4格式,保留原视频的帧率和清晰度,导出过程快速,无需等待,导出成功后会有弹窗提示,操作便捷又高效。

3. GIF转换模块:一键生成,简洁高效

除了视频裁剪,工具还内置了GIF转换功能,无需额外软件,一键就能将视频片段转换为GIF动图。转换过程中,会自动沿用当前的裁剪区域,只转换裁剪后的画面,避免多余内容干扰。

工具默认设置GIF帧率为10帧/秒,最大帧数限制为80帧,既保证了GIF的流畅度,又避免了文件过大。同时,会自动将GIF画面缩放到480x480以内,适配社交平台的发送要求,生成的GIF动图清晰流畅,色彩还原度高,无论是分享好友还是用于自媒体配图,都非常合适。转换完成后,同样会有弹窗提示,一键保存即可使用。

二、完整代码呈现:开源可修改,小白也能看懂

这款工具的代码结构清晰,注释完整,分为主界面搭建、视频加载、预览显示、裁剪计算、导出保存、GIF转换六大核心部分,即使是Python小白,也能轻松看懂并修改。以下是完整代码,复制粘贴即可运行(需提前安装依赖包:opencv-python、pillow):

import tkinter as tkfrom tkinter import ttk, filedialog, messageboximport cv2import osfrom PIL import Image, ImageTk# ====================== 主界面 ======================classVideoCutterApp:def__init__(self, root):        self.root = root        self.root.title("🎬 视频裁剪 & GIF 工具")        self.root.geometry("900x650")        self.root.resizable(TrueTrue)# 变量        self.video_path = None        self.cap = None        self.current_frame = None        self.crop_w = 0        self.crop_h = 0        self.x1 = self.y1 = self.x2 = self.y2 = 0# 样式        self.setup_style()        self.create_widgets()defsetup_style(self):        style = ttk.Style()        style.configure(".", font=("微软雅黑"10))        style.configure("TButton", padding=6)        style.configure("Title.TLabel", font=("微软雅黑"14"bold"))defcreate_widgets(self):# 标题        title = ttk.Label(self.root, text="视频裁剪与GIF转换", style="Title.TLabel")        title.pack(pady=10)# 顶部按钮栏        frame_btn = ttk.Frame(self.root)        frame_btn.pack(pady=5)        ttk.Button(frame_btn, text="📂 选择视频", command=self.load_video).grid(row=0, column=0, padx=10)        ttk.Button(frame_btn, text="✂️ 裁剪并导出", command=self.crop_save).grid(row=0, column=1, padx=10)        ttk.Button(frame_btn, text="🎞️ 转GIF", command=self.to_gif).grid(row=0, column=2, padx=10)# 预览区域 ———— 已修复BUG        self.preview_frame = tk.Frame(self.root, width=800, height=450, relief=tk.SUNKEN, bd=2)        self.preview_frame.pack(pady=10)        self.preview_frame.pack_propagate(False)        self.preview_label = tk.Label(self.preview_frame)        self.preview_label.pack(expand=True, fill=tk.BOTH)# 裁剪控制        frame_crop = ttk.LabelFrame(self.root, text="裁剪设置")        frame_crop.pack(pady=8, padx=20, fill=tk.X)# 比例        ttk.Label(frame_crop, text="比例:").grid(row=0, column=0, padx=5)        self.ratio_var = tk.StringVar()        ratios = [("1:1""1:1"), ("16:9""16:9"), ("9:16""9:16"), ("4:3""4:3"), ("3:4""3:4"),                  ("自定义像素""custom")]for i, (text, v) in enumerate(ratios):            ttk.Radiobutton(frame_crop, text=text, variable=self.ratio_var, value=v, command=self.update_crop).grid(                row=0, column=i + 1, padx=4)        self.ratio_var.set("1:1")# 自定义宽高        ttk.Label(frame_crop, text="宽:").grid(row=1, column=0, pady=8)        self.w_entry = ttk.Entry(frame_crop, width=8)        self.w_entry.grid(row=1, column=1)        ttk.Label(frame_crop, text="高:").grid(row=1, column=2)        self.h_entry = ttk.Entry(frame_crop, width=8)        self.h_entry.grid(row=1, column=3)# 状态        self.status_label = ttk.Label(self.root, text="请选择视频", foreground="gray")        self.status_label.pack(pady=5)# ========== 加载视频 ==========defload_video(self):        path = filedialog.askopenfilename(filetypes=[("视频""*.mp4 *.avi *.mov *.mkv")])ifnot path:return        self.video_path = path        self.cap = cv2.VideoCapture(path)        self.show_frame()        self.status_label.config(text=f"已加载: {os.path.basename(path)}")# ========== 显示帧 ==========defshow_frame(self):ifnot self.cap:return        self.cap.set(cv2.CAP_PROP_POS_FRAMES, 0)        ret, frame = self.cap.read()if ret:            self.current_frame = frame            self.update_crop()# ========== 计算裁剪区域 ==========defupdate_crop(self):if self.current_frame isNone:return        h, w = self.current_frame.shape[:2]        ratio = self.ratio_var.get()try:if ratio == "custom":                cw = int(self.w_entry.get() or400)                ch = int(self.h_entry.get() or400)                x1 = (w - cw) // 2                y1 = (h - ch) // 2                x2 = x1 + cw                y2 = y1 + chelse:                tr = eval(ratio.replace(":""/"))                cr = w / hif cr > tr:                    nw = int(h * tr)                    nh = h                    x1 = (w - nw) // 2                    y1 = 0else:                    nh = int(w / tr)                    nw = w                    x1 = 0                    y1 = (h - nh) // 2                x2 = x1 + nw                y2 = y1 + nh            self.x1, self.y1, self.x2, self.y2 = x1, y1, x2, y2            self.draw_preview()except:pass# ========== 画预览框 ==========defdraw_preview(self):        frame = self.current_frame.copy()        cv2.rectangle(frame, (self.x1, self.y1), (self.x2, self.y2), (02550), 3)        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)        h, w = frame.shape[:2]        max_w, max_h = 800450        scale = min(max_w / w, max_h / h)        nw, nh = int(w * scale), int(h * scale)        img = Image.fromarray(frame).resize((nw, nh), Image.Resampling.LANCZOS)        imgtk = ImageTk.PhotoImage(img)        self.preview_label.config(image=imgtk)        self.preview_label.image = imgtk# ========== 裁剪保存 ==========defcrop_save(self):ifnot self.cap:            messagebox.showwarning("提示""请先加载视频")return        out = filedialog.asksaveasfilename(defaultextension=".mp4", filetypes=[("MP4""*.mp4")])ifnot out:return        fps = int(self.cap.get(cv2.CAP_PROP_FPS))        w, h = self.x2 - self.x1, self.y2 - self.y1        fourcc = cv2.VideoWriter_fourcc(*'mp4v')        writer = cv2.VideoWriter(out, fourcc, fps, (w, h))        self.cap.set(cv2.CAP_PROP_POS_FRAMES, 0)whileTrue:            ret, f = self.cap.read()ifnot ret:break            writer.write(f[self.y1:self.y2, self.x1:self.x2])        writer.release()        messagebox.showinfo("完成""✅ 视频已保存")# ========== 转GIF ==========defto_gif(self):ifnot self.cap:            messagebox.showwarning("提示""请先加载视频")return        out = filedialog.asksaveasfilename(defaultextension=".gif", filetypes=[("GIF""*.gif")])ifnot out:return        fps = 10        frames = []        self.cap.set(cv2.CAP_PROP_POS_FRAMES, 0)whileTrue:            ret, f = self.cap.read()ifnot ret or len(frames) > 80:break            f = cv2.cvtColor(f, cv2.COLOR_BGR2RGB)            f = f[self.y1:self.y2, self.x1:self.x2]            img = Image.fromarray(f)            img.thumbnail((480480))            frames.append(img)        frames[0].save(out, save_all=True, append_images=frames[1:], loop=0, duration=1000 // fps)        messagebox.showinfo("完成""✅ GIF已生成")if __name__ == "__main__":    root = tk.Tk()    app = VideoCutterApp(root)    root.mainloop()

三、核心知识点总结:吃透代码,提升Python能力

这款工具的代码虽然不复杂,但涵盖了多个Python核心知识点,尤其是图形界面开发、视频处理和图像处理相关的内容,吃透这些知识点,能有效提升你的Python实战能力,下面我们逐一总结:

1. TKinter图形界面开发

TKinter是Python内置的图形界面开发库,无需额外安装,上手简单,适合快速开发小型可视化工具。本项目中,使用TKinter的ttk组件(更美观、更高级)搭建界面,包括窗口、标签、按钮、输入框、框架等元素,通过pack()方法进行布局,实现了界面的简洁美观。

关键知识点:ttk.Style()用于设置组件样式,包括字体、padding等;Frame用于划分界面区域,实现布局整洁;Label用于显示文本和图片(预览区域);Button绑定点击事件,触发对应的功能函数;Entry用于接收用户输入(自定义宽高);Radiobutton实现单选功能(裁剪比例选择)。

2. OpenCV视频处理

OpenCV(opencv-python)是Python中最常用的计算机视觉库,本项目中主要用于视频的加载、帧读取、裁剪和导出。核心用法包括:cv2.VideoCapture()加载视频文件,获取视频的帧率、帧尺寸等信息;cap.read()读取视频的每一帧;cap.set()设置视频的起始帧位置;cv2.VideoWriter()用于导出裁剪后的视频,指定输出格式、帧率和尺寸。

关键知识点:视频帧的格式为BGR(OpenCV默认),需要转换为RGB格式才能在PIL中正常显示;裁剪视频本质是对每一帧的像素进行切片(f[self.y1:self.y2, self.x1:self.x2]);fourcc编码用于指定视频输出格式(mp4v对应MP4格式)。

3. PIL图像处理

PIL(pillow)是Python中常用的图像处理库,本项目中用于将OpenCV读取的视频帧转换为TKinter可显示的图片,以及GIF动图的生成。核心用法包括:Image.fromarray()将numpy数组(视频帧)转换为PIL图像;Image.resize()调整图像尺寸,保证预览画面适配预览区域;Image.thumbnail()压缩图像,避免GIF文件过大;frames[0].save()用于生成GIF动图,设置循环次数和帧间隔。

4. 异常处理与用户交互

项目中加入了简单的异常处理(try-except语句),避免用户输入错误(如自定义宽高输入非数字)导致程序崩溃;使用filedialog模块实现文件选择(加载视频、保存文件),提升用户体验;使用messagebox模块弹出提示信息(警告、完成提示),让用户清晰了解操作状态,避免误操作。

四、拓展场景与测试步骤:快速上手,灵活运用

1. 拓展场景:不止于基础功能

这款工具的基础功能已经能满足大部分日常需求,在此基础上,还可以根据自己的需求进行拓展,适配更多场景:

  • 拓展1:添加视频剪辑功能,支持截取指定时间段的视频(而非完整视频裁剪),适配需要截取片段的场景;

  • 拓展2:优化GIF转换功能,支持自定义帧率、帧数和尺寸,满足不同清晰度和大小的需求;

  • 拓展3:添加视频格式转换功能,支持将avi、mov等格式转换为mp4,实现一站式视频处理;

  • 拓展4:自定义界面风格,修改颜色、字体、按钮图标等,打造专属自己的工具;

  • 拓展5:添加批量处理功能,支持同时裁剪多个视频、转换多个GIF,提升效率。

2. 测试步骤:小白也能快速上手

无需复杂配置,按照以下步骤操作,就能快速测试工具功能,轻松上手使用:

  1. 安装依赖包:打开命令行,输入命令“pip install opencv-python pillow”,等待安装完成(如果已安装,可跳过此步骤);

  2. 复制上面的完整代码,保存为.py文件(如video_cutter.py);

  3. 运行代码:双击.py文件,或在命令行输入“python video_cutter.py”,启动工具界面;

  4. 加载视频:点击“📂 选择视频”按钮,选择本地的视频文件(支持mp4、avi、mov、mkv格式),加载完成后,预览区域会显示视频第一帧,状态栏提示“已加载:文件名”;

  5. 设置裁剪比例:选择需要的裁剪比例(如1:1、16:9),或选择“自定义像素”,输入宽高,预览区域会实时显示裁剪范围(绿色边框);

  6. 裁剪并导出:点击“✂️ 裁剪并导出”按钮,选择保存路径和文件名,点击“保存”,等待导出完成,弹窗提示“✅ 视频已保存”;

  7. 转换GIF:保持视频加载状态,设置好裁剪比例后,点击“🎞️ 转GIF”按钮,选择保存路径和文件名,点击“保存”,等待转换完成,弹窗提示“✅ GIF已生成”;

  8. 测试完成:打开保存的视频和GIF文件,检查裁剪效果和GIF流畅度,如需调整,重新设置裁剪比例即可。

最后总结

这款Python视频裁剪&GIF转换工具,兼顾了美观与实用,界面精致高级,功能全面便捷,无需复杂操作,小白也能快速上手。不仅能满足日常视频裁剪、GIF转换的需求,还能通过修改代码拓展更多功能,适合Python初学者练手,也适合办公、自媒体等场景日常使用。

通过学习这款工具的代码,你可以熟练掌握TKinter图形界面开发、OpenCV视频处理、PIL图像处理等核心知识点,提升Python实战能力。赶紧复制代码,动手测试,打造属于自己的视频处理工具吧!如果在使用过程中遇到问题,欢迎在评论区留言交流~ 

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 19:15:50 HTTP/2.0 GET : https://f.mffb.com.cn/a/487337.html
  2. 运行时间 : 0.143703s [ 吞吐率:6.96req/s ] 内存消耗:5,053.41kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=745c36ab92a8d2a396ef1d4face62710
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000535s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000710s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.005513s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002530s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000570s ]
  6. SELECT * FROM `set` [ RunTime:0.002060s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000733s ]
  8. SELECT * FROM `article` WHERE `id` = 487337 LIMIT 1 [ RunTime:0.007171s ]
  9. UPDATE `article` SET `lasttime` = 1783077350 WHERE `id` = 487337 [ RunTime:0.003345s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000972s ]
  11. SELECT * FROM `article` WHERE `id` < 487337 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001934s ]
  12. SELECT * FROM `article` WHERE `id` > 487337 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004330s ]
  13. SELECT * FROM `article` WHERE `id` < 487337 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.017239s ]
  14. SELECT * FROM `article` WHERE `id` < 487337 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008222s ]
  15. SELECT * FROM `article` WHERE `id` < 487337 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.009873s ]
0.145301s