From 9a2f3cc7437221e67d45276196ba59008c98fb37 Mon Sep 17 00:00:00 2001 From: flavioy Date: Wed, 8 Apr 2026 21:41:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=9B=BE=E7=89=87=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=89=93=E5=BC=80=E4=B8=8E=E5=A4=84=E7=90=86=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BE=E7=89=87=E5=8A=A0=E8=BD=BD=E6=BA=A2?= =?UTF-8?q?=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 文件对话框添加图片格式过滤(jpg/png/bmp/webp/tiff等) - 修复 cv2.VideoCapture 打开图片时 FRAME_COUNT 返回 INT64_MIN 导致 QSlider.setMaximum 溢出的问题,图片直接走 load_as_picture Co-Authored-By: Claude Opus 4.6 --- ui/home_interface.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ui/home_interface.py b/ui/home_interface.py index b256ec7..a37796f 100644 --- a/ui/home_interface.py +++ b/ui/home_interface.py @@ -560,6 +560,9 @@ class HomeInterface(QWidget): if self.video_cap: self.video_cap.release() self.video_cap = None + # 如果是图片文件,直接走图片加载路径 + if is_image_file(video_path): + return self.load_as_picture(video_path) self.video_cap = cv2.VideoCapture(get_readable_path(self.video_path)) if not self.video_cap.isOpened(): return self.load_as_picture(video_path) @@ -570,7 +573,7 @@ class HomeInterface(QWidget): self.frame_height = int(self.video_cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) self.frame_width = int(self.video_cap.get(cv2.CAP_PROP_FRAME_WIDTH)) self.fps = self.video_cap.get(cv2.CAP_PROP_FPS) - + self.update_preview(frame) self.video_slider.setMaximum(self.frame_count) self.video_slider.setValue(1) @@ -601,7 +604,7 @@ class HomeInterface(QWidget): self, tr['SubtitleExtractorGUI']['Open'], "", - "All Files (*.*);;MP4 Files (*.mp4);;FLV Files (*.flv);;WMV Files (*.wmv);;AVI Files (*.avi)" + "All Files (*.*);;Video Files (*.mp4 *.flv *.wmv *.avi *.mkv *.mov);;Image Files (*.jpg *.jpeg *.png *.bmp *.webp *.tiff)" ) if files: files_loaded = []