
网域社区 发布的所有帖子
-
[Windows]手写签名提取工具 免费下载
本工具是一款支持手动多区域框选、智能图像优化处理、一键自适应分离签名PNG透明底的高级签名提取软件。针对高分辨率扫描件和复杂背景文件,内置高效算法,可显著提升签名分割质量。自带EXE版本,无需安装Python环境,开箱即用! 功能特色支持多区域橡皮筋拖选签名,一次处理多份签名,解放批量操作 CLAHE对比度增强 + 智能白底优化 + 笔迹加深,极大提升低对比签名提取效果 图像预览支持缩放/拖拽/精准定位,大图不卡顿,人性化体验 批量输出透明PNG文件,无水印、无广告 极简GUI操作,无需任何命令行基础 多线程加速处理,不卡死不卡白 已打包为单文件EXE,即点即用! 使用方法1运行gui_main.exe; 2选择需要处理的扫描图片; 3可以切换“高级优化”进行图像质量提升,推荐优化后再选区域; 4鼠标滚轮缩放图像,中键拖动画布定位,左键框选签名区域(支持多选,多区域编号); 5点击“提取签名”,软件将智能分割各区域签名,自动输出到指定文件夹。 核心源码gui_main.py 复制代码 隐藏代码 import tkinter as tk from src.gui_interface import create_gui if __name__ == '__main__': create_gui()settings.py 复制代码 隐藏代码 # config/settings.py # ==================== 输出设置 ==================== OUTPUT = { 'output_dir': 'extracted_signatures', # 输出目录 'prefix': 'signature_' # 文件前缀 } # ==================== 签名提取设置 ==================== SIGNATURE_EXTRACTION = { 'signature_padding': 20, # 签名周围的填充空间 'selection_color': (255, 0, 0), # 选区框颜色 (BGR) 'adaptive_threshold_block': 21, # 自适应阈值块大小(应为奇数) 'adaptive_threshold_c': 5, # 自适应阈值常数 'min_alpha_value': 20, # 最小有效alpha值 'max_channel_difference': 15, # 最大允许的通道差异 'stroke_enhance_strength': 0.8, # 笔画增强强度 (0-1) 'max_stroke_thickness': 8, # 最大笔画厚度(像素) 'min_stroke_length': 10, # 最小笔画长度(像素) 'preprocess_steps': { 'auto_enhance': True, # 是否启用自动增强 'background_whiten': True, # 是否漂白背景 'signature_darken': True, # 是否加深签名 'contrast_level': 1.5, # 对比度增强级别 (1-3) 'whiten_strength': 0.9, # 漂白强度 (0-1) 'darken_strength': 1.2, # 加深强度 (>1) 'use_clahe': True, # <---- 新增 'use_advanced_preprocessing': True # <---- 新增 } }gui_interface.py 复制代码 隐藏代码 import os import cv2 import numpy as np import tkinter as tk from tkinter import ttk, filedialog, messagebox from PIL import Image, ImageTk import threading try: from ttkthemes import ThemedTk except ImportError: ThemedTk = None from config import settings # --------- 工具函数 ---------- def ensure_dir(directory): if not os.path.exists(directory): os.makedirs(directory) def is_valid_image_file(file_path): valid_extensions = ['.jpg', '.jpeg', '.png', '.bmp', '.tif'] ext = os.path.splitext(file_path)[1].lower() return ext in valid_extensions def load_image(file_path): if not os.path.exists(file_path): return None try: image = cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), 1) if image is None: raise IOError("无法读取图像文件") return image except Exception as e: print(f"加载图像错误: {str(e)}") return None # --------- 核心图像处理 ---------- class SignatureExtractor: def __init__(self): self.output_settings = settings.OUTPUT self.extraction_settings = settings.SIGNATURE_EXTRACTION def extract_selected_signatures(self, input_path, selections, output_dir=None, use_enhanced_image=True): if not os.path.exists(input_path): print(f"错误: 文件不存在 - {input_path}") return False, [], None if not is_valid_image_file(input_path): print(f"错误: 不支持的图像格式 - {input_path}") return False, [], None if not selections: print("没有选择任何签名区域") return False, [], None if output_dir is None: output_dir = self.output_settings['output_dir'] ensure_dir(output_dir) orig_image = load_image(input_path) if orig_image is None: print("无法加载图像!") return False, [], None if use_enhanced_image: try: enhanced_image = self.enhance_image_advanced(orig_image.copy()) except Exception as e: print(f"图像优化失败: {e}") enhanced_image = orig_image.copy() else: enhanced_image = orig_image.copy() signature_paths = [] base_filename = os.path.splitext(os.path.basename(input_path))[0] for i, region in enumerate(selections): region_image = self._extract_region(orig_image, region) if region_image is None: print(f"选区 {i+1} 无效") continue try: signature_img = self._extract_and_optimize_signature_advanced(region_image) except Exception as e: print(f"提取签名时出错: {e}") continue if signature_img is not None and not self._is_mostly_transparent(signature_img): output_filename = f"{self.output_settings['prefix']}{base_filename}_{i+1}.png" output_path = os.path.join(output_dir, output_filename) cv2.imencode('.png', signature_img)[1].tofile(output_path) signature_paths.append(output_path) print(f"签名已保存: {output_path}") else: print(f"警告: 选区 {i+1} 提取失败 - 可能签名过浅或区域不包含有效签名") return True if signature_paths else False, signature_paths, enhanced_image def enhance_image_advanced(self, image): if len(image.shape) == 2: image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR) try: denoised = cv2.fastNlMeansDenoisingColored(image, None, 10, 10, 7, 21) except Exception: denoised = image lab = cv2.cvtColor(denoised, cv2.COLOR_BGR2LAB) l_channel, a_channel, b_channel = cv2.split(lab) use_clahe = self.extraction_settings.get('preprocess_steps', {}).get('use_clahe', True) if use_clahe: clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8, 8)) l_enhanced = clahe.apply(l_channel) else: l_enhanced = l_channel l_stretched = cv2.normalize(l_enhanced, None, 0, 255, cv2.NORM_MINMAX) enhanced_lab = cv2.merge([l_stretched, a_channel, b_channel]) enhanced_bgr = cv2.cvtColor(enhanced_lab, cv2.COLOR_LAB2BGR) enhanced_bgr = self._enhance_white_background(enhanced_bgr) enhanced_bgr = self._darken_signature_strokes(enhanced_bgr) kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]]) sharpened = cv2.filter2D(enhanced_bgr, -1, kernel) final_result = cv2.addWeighted(enhanced_bgr, 0.7, sharpened, 0.3, 0) return final_result def _enhance_white_background(self, image): gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) _, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (15, 15)) background_mask = cv2.morphologyEx(binary, cv2.MORPH_DILATE, kernel) enhanced = image.copy().astype(np.float32) background_indices = background_mask == 255 enhanced[background_indices] = enhanced[background_indices] * 1.2 + 30 enhanced = np.clip(enhanced, 0, 255).astype(np.uint8) return enhanced def _darken_signature_strokes(self, image): hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) h, s, v = cv2.split(hsv) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) adaptive_thresh = cv2.adaptiveThreshold( gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2 ) kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) stroke_mask = cv2.morphologyEx(adaptive_thresh, cv2.MORPH_CLOSE, kernel) darkened = image.copy().astype(np.float32) stroke_indices = stroke_mask == 255 darkened[stroke_indices] = darkened[stroke_indices] * 0.6 darkened = np.clip(darkened, 0, 255).astype(np.uint8) return darkened def _extract_region(self, image, region): x1, y1, x2, y2 = region x_min = min(int(x1), int(x2)) y_min = min(int(y1), int(y2)) x_max = max(int(x1), int(x2)) y_max = max(int(y1), int(y2)) padding = self.extraction_settings.get('signature_padding', 20) x_min = max(0, x_min - padding) y_min = max(0, y_min - padding) x_max = min(image.shape[1], x_max + padding) y_max = min(image.shape[0], y_max + padding) if x_min >= x_max or y_min >= y_max: return None return image[y_min:y_max, x_min:x_max] def _extract_and_optimize_signature_advanced(self, region_image): processed = self._preprocess_region(region_image) edges = self._multi_scale_edge_detection(processed) binary_mask = self._intelligent_thresholding(processed) combined_mask = cv2.bitwise_or(edges, binary_mask) optimized_mask = self._morphological_optimization(combined_mask) result = self._create_high_quality_transparent_image(region_image, optimized_mask) return result def _preprocess_region(self, image): denoised = cv2.bilateralFilter(image, 9, 75, 75) gray = cv2.cvtColor(denoised, cv2.COLOR_BGR2GRAY) clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) enhanced = clahe.apply(gray) return enhanced def _multi_scale_edge_detection(self, gray_image): scales = [1.0, 1.5, 2.0] edges_list = [] for scale in scales: sigma = scale blurred = cv2.GaussianBlur(gray_image, (0, 0), sigma) edges = cv2.Canny(blurred, 50, 150) edges_list.append(edges) final_edges = np.zeros_like(gray_image) for edges in edges_list: final_edges = cv2.bitwise_or(final_edges, edges) return final_edges def _intelligent_thresholding(self, gray_image): adaptive1 = cv2.adaptiveThreshold( gray_image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2 ) _, otsu = cv2.threshold(gray_image, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) _, triangle = cv2.threshold(gray_image, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_TRIANGLE) combined = cv2.bitwise_or(adaptive1, otsu) combined = cv2.bitwise_or(combined, triangle) return combined def _morphological_optimization(self, binary_mask): kernel_small = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) cleaned = cv2.morphologyEx(binary_mask, cv2.MORPH_OPEN, kernel_small) kernel_connect = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5)) connected = cv2.morphologyEx(cleaned, cv2.MORPH_CLOSE, kernel_connect) contours, _ = cv2.findContours(connected, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) min_area = 50 final_mask = np.zeros_like(binary_mask) for contour in contours: if cv2.contourArea(contour) > min_area: cv2.drawContours(final_mask, [contour], -1, 255, -1) return final_mask def _create_high_quality_transparent_image(self, original_image, mask): height, width = mask.shape transparent_image = np.zeros((height, width, 4), dtype=np.uint8) for c in range(3): transparent_image[:, :, c] = original_image[:, :, c] transparent_image[:, :, 3] = mask alpha_channel = transparent_image[:, :, 3].astype(np.float32) alpha_blurred = cv2.GaussianBlur(alpha_channel, (3, 3), 0.5) transparent_image[:, :, 3] = alpha_blurred.astype(np.uint8) return transparent_image def _is_mostly_transparent(self, image): if image is None or len(image.shape) < 3 or image.shape[2] < 4: return True alpha_channel = image[..., 3] non_transparent_pixels = np.sum(alpha_channel > self.extraction_settings.get('min_alpha_value', 20)) total_pixels = alpha_channel.size return non_transparent_pixels / total_pixels < 0.05 # --------- 优化后的缩放+拖拽画布组件 ----------- class ZoomableSelectionCanvas(tk.Canvas): def __init__(self, master, **kwargs): super().__init__(master, **kwargs) self.zoom = 1.0 self.offset_x = 0 self.offset_y = 0 self.min_zoom = 0.15 self.max_zoom = 8 self.image_pil = None self.image_tk = None self.image_item = None self.selections = [] self.dragging = False self.start_imgxy = None self.temp_rect = None # --- 新增优化缓存 --- self._pending_zoom_after = None self._current_zoom_target = self.zoom self._img_cache = {} self._move_start = None self.bind("<MouseWheel>", self.on_zoom) self.bind("<ButtonPress-1>", self.on_left_down) self.bind("<B1-Motion>", self.on_left_drag) self.bind("<ButtonRelease-1>", self.on_left_up) # 拖拽支持:鼠标中键 self.bind("<ButtonPress-2>", self.on_middle_down) self.bind("<B2-Motion>", self.on_middle_drag) self.bind("<ButtonRelease-2>", self.on_middle_up) def show_image(self, pil_image): self.image_pil = pil_image self.zoom = 1.0 self.offset_x = 0 self.offset_y = 0 self._img_cache.clear() self.redraw() def img2canvas(self, x, y): return x * self.zoom + self.offset_x, y * self.zoom + self.offset_y def canvas2img(self, cx, cy): return (cx - self.offset_x) / self.zoom, (cy - self.offset_y) / self.zoom def redraw(self): self.delete("all") if self.image_pil is None: return w, h = self.image_pil.size disp_w, disp_h = max(1, int(w * self.zoom)), max(1, int(h * self.zoom)) cache_key = f"{disp_w}x{disp_h}" if self._img_cache.get(cache_key): self.image_tk = self._img_cache[cache_key] else: disp_img = self.image_pil.resize((disp_w, disp_h), Image.LANCZOS) self.image_tk = ImageTk.PhotoImage(disp_img) self._img_cache[cache_key] = self.image_tk self.image_item = self.create_image(self.offset_x, self.offset_y, anchor=tk.NW, image=self.image_tk) for i, (x1, y1, x2, y2) in enumerate(self.selections): p1 = self.img2canvas(x1, y1) p2 = self.img2canvas(x2, y2) self.create_rectangle(p1[0], p1[1], p2[0], p2[1], outline='red', width=2, tags='selection') self.create_text(p1[0]+10,p1[1]+10,text=f"{i+1}",fill='red',font=('Arial',12,'bold'),tags='selection') if self.temp_rect: self.lift(self.temp_rect) def on_zoom(self, event): def real_zoom(): self.zoom = self._current_zoom_target self.redraw() self._pending_zoom_after = None if not self.image_pil: return factor = 1.1 if event.delta > 0 else 0.9 self._current_zoom_target = min(max(self.zoom * factor, self.min_zoom), self.max_zoom) mx, my = self.canvasx(event.x), self.canvasy(event.y) ix, iy = self.canvas2img(mx, my) mx2, my2 = self.img2canvas(ix, iy) self.offset_x += (mx - mx2) self.offset_y += (my - my2) if self._pending_zoom_after: self.after_cancel(self._pending_zoom_after) self._pending_zoom_after = self.after(40, real_zoom) def on_left_down(self, event): if not self.image_pil: return self.dragging = True img_x, img_y = self.canvas2img(event.x, event.y) self.start_imgxy = (img_x, img_y) def on_left_drag(self, event): if not self.dragging or not self.image_pil: return if self.temp_rect: self.delete(self.temp_rect) x0, y0 = self.start_imgxy x1, y1 = self.canvas2img(event.x, event.y) p0 = self.img2canvas(x0,y0) p1 = (event.x, event.y) self.temp_rect = self.create_rectangle( p0[0], p0[1], p1[0], p1[1], outline='yellow', dash=(4,2), width=2 ) def on_left_up(self, event): self.delete(self.temp_rect) self.temp_rect = None if not self.dragging or not self.image_pil: return x0, y0 = self.start_imgxy x1, y1 = self.canvas2img(event.x, event.y) if abs(x1-x0) > 10 and abs(y1-y0) > 10: self.selections.append((int(x0), int(y0), int(x1), int(y1))) self.redraw() self.event_generate('<<SelectionCreated>>') self.dragging = False # ------- 画布拖拽 ------- def on_middle_down(self, event): self.config(cursor="fleur") self._move_start = (event.x, event.y) def on_middle_drag(self, event): if self._move_start is None: return dx = event.x - self._move_start[0] dy = event.y - self._move_start[1] self.offset_x += dx self.offset_y += dy self._move_start = (event.x, event.y) self.redraw() def on_middle_up(self, event): self.config(cursor="") self._move_start = None def get_selections(self): return list(self.selections) def clear_selections(self): self.selections = [] self.redraw() def reset_view(self): self.zoom = 1.0 self.offset_x = 0 self.offset_y = 0 self.redraw() # --------- 主界面入口函数 ---------- def create_gui(): root = ThemedTk(theme="arc") if ThemedTk else tk.Tk() root.title("交互式签名提取工具 - 增强版 v2.1") sw, sh = root.winfo_screenwidth(), root.winfo_screenheight() w, h = min(1280, int(sw*0.8)), min(900, int(sh*0.8)) root.geometry(f"{w}x{h}") root.minsize(950, 620) root.configure(bg="#F9F9F9") main_frame = ttk.Frame(root, padding=15) main_frame.grid(row=0, column=0, sticky="nsew") root.grid_rowconfigure(0, weight=1) root.grid_columnconfigure(0, weight=1) main_frame.grid_rowconfigure(3, weight=1) main_frame.grid_columnconfigure(0, weight=1) control_frame = ttk.LabelFrame(main_frame, text="文件选择与图像优化", padding=(10,8,10,8)) control_frame.grid(row=0, column=0, sticky="nsew", padx=5, pady=5, columnspan=2) control_frame.grid_columnconfigure(0, weight=1) input_entry = ttk.Entry(control_frame, width=50, font=("Segoe UI", 12)) output_entry = ttk.Entry(control_frame, width=50, font=("Segoe UI", 12)) optimize_var = tk.BooleanVar(value=True) optimize_cb = ttk.Checkbutton(control_frame, text="启用高级优化", variable=optimize_var, style="Toolbutton") optimize_status = ttk.Label(control_frame, text="(CLAHE增强, 智能白底, 笔迹加深)", font=("Segoe UI", 11,"italic"), foreground="#666") optimize_btn = ttk.Button(control_frame, text="应用优化", width=13) original_btn = ttk.Button(control_frame, text="原始图像", width=13) zoom_info = ttk.Label(control_frame, text="缩放: 100% | 滚轮缩放", foreground="#447") reset_zoom_btn = ttk.Button(control_frame, text="重置视图", width=12) ttk.Label(control_frame, text="输入图像:", font=("Segoe UI",11)).grid(row=0, column=0, sticky="e") input_entry.grid(row=0, column=1, sticky="ew") ttk.Button(control_frame, text="浏览", command=lambda: load_image_file(input_entry)).grid(row=0, column=2, padx=5) ttk.Label(control_frame, text="输出目录:", font=("Segoe UI",11)).grid(row=1, column=0, sticky="e") output_entry.grid(row=1, column=1, sticky="ew") output_entry.insert(0, 'extracted_signatures') ttk.Button(control_frame, text="浏览", command=lambda: select_output_dir(output_entry)).grid(row=1, column=2, padx=5) optimize_cb.grid(row=2, column=0, sticky="w", pady=(7,2)) optimize_status.grid(row=2, column=1, sticky="w", padx=(5,0)) optimize_btn.grid(row=2, column=2, sticky="e", pady=(7,2)) original_btn.grid(row=3, column=2, sticky="e") zoom_info.grid(row=3, column=0, sticky="w", padx=(5,0)) reset_zoom_btn.grid(row=3, column=1, sticky="e", padx=(6,0)) selection_frame = ttk.LabelFrame(main_frame, text="签名选择与操作", padding=9) selection_frame.grid(row=1, column=0, sticky="ew", pady=5, padx=2) selection_instruction = ( "操作说明:\n" " ① 加载图像后,点击『应用优化』提升质量;\n" " ② 鼠标滚轮缩放,中键拖拽定位,左键橡皮筋框选签名(支持多选);\n" " ③ 右菜单可清除/删除/重新选择,底部点击『提取签名』完成智能分割。" ) ttk.Label(selection_frame, text=selection_instruction, font=("微软雅黑", 10), foreground="#5A5A5A").grid(row=0, column=0, sticky="w") selection_listbox = tk.Listbox(selection_frame, width=75, height=4, font=("Consolas",11)) selection_listbox.grid(row=1, column=0, sticky="ew", pady=3) preview_frame = ttk.Frame(main_frame, relief="flat") preview_frame.grid(row=2, column=0, sticky="nsew", padx=0, pady=3) main_frame.grid_rowconfigure(2, weight=2) preview_frame.grid_rowconfigure(0, weight=1) preview_frame.grid_columnconfigure(0, weight=1) orig_frame = ttk.LabelFrame(preview_frame, text="图像预览(滚轮缩放、中键拖拽、左键框选)", padding=5) orig_frame.grid(row=0, column=0, sticky="nsew") orig_frame.grid_rowconfigure(0, weight=1) orig_frame.grid_columnconfigure(0, weight=1) orig_canvas = ZoomableSelectionCanvas(orig_frame, bg="#FAFAFF", highlightthickness=0) orig_canvas.grid(row=0, column=0, sticky="nsew") action_frame = ttk.Frame(main_frame, padding=5) action_frame.grid(row=4, column=0, sticky="ew") clear_btn = ttk.Button(action_frame, text="清除选区", width=15) remove_btn = ttk.Button(action_frame, text="移除所选", width=15) extract_btn = ttk.Button(action_frame, text="提取签名", width=15) help_btn = ttk.Button(action_frame, text="使用指南", width=12) clear_btn.pack(side=tk.LEFT, padx=5) remove_btn.pack(side=tk.LEFT, padx=5) extract_btn.pack(side=tk.LEFT, padx=5) help_btn.pack(side=tk.LEFT, padx=5) status_bar = ttk.Label(root, text="高级签名提取工具已就绪 - 请加载图像开始操作", anchor=tk.W, font=("微软雅黑", 10, "italic"), relief=tk.SUNKEN) status_bar.grid(row=5, column=0, sticky="ew") ###### 变量/对象区 orig_pil_image, orig_image_cv, enhanced_image = None, None, None current_displayed_image = None use_enhanced_image = True extractor = SignatureExtractor() ###### 内部函数 def update_selection_listbox(): selection_listbox.delete(0, tk.END) for i, (x1, y1, x2, y2) in enumerate(orig_canvas.get_selections()): selection_listbox.insert(tk.END, f"选区{i+1}: ({x1},{y1}) - ({x2},{y2})") orig_canvas.bind("<<SelectionCreated>>", lambda e: update_selection_listbox()) def display_image(image): nonlocal orig_pil_image, current_displayed_image current_displayed_image = image if image is None: return if len(image.shape) == 2: pil_image = Image.fromarray(image) else: pil_image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) orig_pil_image = pil_image orig_canvas.show_image(pil_image) update_zoom_info() def update_zoom_info(): if orig_canvas: zoom_percentage = int(orig_canvas.zoom * 100) zoom_info.config(text=f"缩放: {zoom_percentage}% | 鼠标滚轮缩放 | 中键拖拽") def load_image_file(entry_widget): nonlocal orig_pil_image, orig_image_cv, enhanced_image, current_displayed_image file_path = filedialog.askopenfilename( title="选择图像文件", filetypes=[("图像文件", "*.jpg *.jpeg *.png *.bmp *.tif")] ) if file_path: orig_canvas.clear_selections() selection_listbox.delete(0, tk.END) entry_widget.delete(0, tk.END) entry_widget.insert(0, file_path) def work(): nonlocal orig_image_cv, enhanced_image orig_image_cv = load_image(file_path) if orig_image_cv is not None: try: enhanced_image = extractor.enhance_image_advanced(orig_image_cv.copy()) except Exception as e: print(f"图像优化失败: {str(e)}") enhanced_image = orig_image_cv.copy() def finish(): if optimize_var.get(): display_image(enhanced_image) else: display_image(orig_image_cv) status_bar.config(text="图像已加载,建议应用优化再进行选择") root.after(0, finish) else: root.after(0, lambda: status_bar.config(text="无法加载图像文件")) threading.Thread(target=work, daemon=True).start() def enhance_current_image(enhance=True): nonlocal enhanced_image, current_displayed_image if orig_image_cv is None: return status_bar.config(text="正在应用高级图像优化...") optimize_btn["state"] = "disabled" original_btn["state"] = "disabled" root.update_idletasks() def work(): nonlocal enhanced_image try: enhanced_image = extractor.enhance_image_advanced(orig_image_cv.copy()) except Exception as e: print(f"图像优化失败: {str(e)}") enhanced_image = orig_image_cv.copy() def finish(): display_image(enhanced_image) status_bar.config(text="图像优化完成,现在可以精确选择签名区域") optimize_btn["state"] = "normal" original_btn["state"] = "normal" root.after(0, finish) threading.Thread(target=work, daemon=True).start() optimize_btn.config(command=lambda: enhance_current_image(True)) original_btn.config(command=lambda: enhance_current_image(False)) def reset_zoom_view(): orig_canvas.reset_view() update_zoom_info() reset_zoom_btn.config(command=reset_zoom_view) def toggle_optimization(): nonlocal use_enhanced_image use_enhanced_image = optimize_var.get() status_text = "启用高级优化" if use_enhanced_image else "禁用优化" optimize_status.config(text=f"({status_text})") if current_displayed_image is not None and orig_image_cv is not None: if use_enhanced_image and enhanced_image is not None: display_image(enhanced_image) else: display_image(orig_image_cv) optimize_cb.config(command=toggle_optimization) def extract_selected_signatures(): input_path = input_entry.get() if not input_path: messagebox.showerror("错误", "请先选择输入图片") return selections = orig_canvas.get_selections() if not selections: messagebox.showerror("错误", "未选择任何签名区域") return output_dir = output_entry.get() if not output_dir: output_dir = extractor.output_settings['output_dir'] status_bar.config(text="正在使用高级算法提取签名...") extract_btn["state"] = "disabled" root.update_idletasks() def work(): use_enhanced = optimize_var.get() success, signature_paths, _ = extractor.extract_selected_signatures( input_path, selections, output_dir, use_enhanced_image=use_enhanced ) def finish(): extract_btn["state"] = "normal" if success and signature_paths: status_bar.config(text=f"提取完成!已保存 {len(signature_paths)} 个高质量签名") answer = messagebox.askyesno("提取完成", f"成功提取 {len(signature_paths)} 个签名,是否查看结果?") if answer: try: if os.name == 'nt': os.startfile(output_dir) elif os.name == 'posix': import subprocess import sys opener = 'open' if sys.platform == 'darwin' else 'xdg-open' subprocess.Popen([opener, output_dir]) except Exception as e: print(f"无法打开文件夹: {e}") status_bar.config(text=f"提取完成,但无法打开目录: {e}") else: status_bar.config(text="警告: 签名提取失败,请检查图像质量和选区位置") messagebox.showwarning("提取警告", "签名提取失败。建议:\n" "1. 启用高级优化功能\n" "2. 确保选区包含完整签名\n" "3. 检查原图像质量") root.after(0, finish) threading.Thread(target=work, daemon=True).start() extract_btn.config(command=extract_selected_signatures) def clear_selections(): orig_canvas.clear_selections() selection_listbox.delete(0, tk.END) status_bar.config(text="已清除所有选区") clear_btn.config(command=clear_selections) def remove_selected(): selected_indices = selection_listbox.curselection() if not selected_indices: return current_sels = orig_canvas.get_selections() updated = [v for i,v in enumerate(current_sels) if i not in selected_indices] orig_canvas.selections = updated orig_canvas.redraw() update_selection_listbox() status_bar.config(text=f"已删除{len(selected_indices)}个选区") remove_btn.config(command=remove_selected) def show_help(): message = """高级签名提取工具2025增强版 - 快捷指南 · 『应用优化』:CLAHE增强+白底优化+黑字加强 · 鼠标滚轮缩放, 中键拖动画布, 左键框选签名 · 推荐优化后再选区,选区略包含签名四周 · 内置多线程不卡,超顺滑体验! 联系开发者/反馈建议 → [Your contact here] """ messagebox.showinfo("使用指南", message) help_btn.config(command=show_help) def select_output_dir(entry_widget): dir_path = filedialog.askdirectory(title="选择输出目录") if dir_path: entry_widget.delete(0, tk.END) entry_widget.insert(0, dir_path) # 优化:智能防卡和黑屏补丁 def window_event_refresh(event): orig_canvas.after(60, orig_canvas.redraw) root.bind("<FocusIn>", window_event_refresh) root.bind("<Configure>", lambda e: orig_canvas.after(30, orig_canvas.redraw)) status_bar.config(text="高级签名提取工具已就绪 - 请加载图像") root.mainloop() if __name__ == '__main__': create_gui() 下载:gui_main.exe
-
[Android] 百词斩 V7.8.7 去除广告绿色版本下载
百词斩APP是一款针对英语学习开发的单词记忆工具,通过图文案例使其能够快速的对陌生词汇进行理解与加深记忆,是一款不可多得的背单词神器。 上到考研四六级,下到学前班的hello!goodmorning等都是全方位无死角的覆盖,可见词汇量是多么的的丰富。新颖的情景代入 记忆更能让你加深印象,从此彻底告别枯燥乏味的传统记忆方式,百词斩为你合理化定制学习方案使其过五关斩六将,妈妈再也不用担心我的散装英语啦! 当然工具只是辅助作用更需要的是长期以往的坚持,百词斩有着高效率的学习方式能够更轻松的搞定单词 貌似好像只能游客登录捏! 通过网盘分享的文件:百词斩_7.8.7 (1)_sign.zip 链接: https://pan.baidu.com/s/1RTXnypK51BBu_mOOpAldtA?pwd=wf3f 提取码: wf3f 我用夸克网盘分享了「百词斩_7.8.7 (1)_sign.zip」 链接:https://pan.quark.cn/s/2e96fd9e486e
-
[Android] 酷狗音乐车载版v6.0.6 开心版 破解版下载
软件简介: 酷狗音乐车载版是专为汽车用户打造的音乐播放应用,基于原生酷狗音乐深度优化,支持Hi-Res高解析音频、无缝投屏、语音控制等功能,带来更安全、便捷、高品质的车载听歌体验。界面简洁直观,操作流畅,适合在行车过程中使用。 功能截图展示 首页界面: 显示Hi-Res标识与VIP提示,突出高品质音频特性。 推荐“限免单曲”列表,每首歌附带封面、歌手名及播放按钮。 播放控制栏: 底部悬浮播放条,包含播放/暂停、上一首、下一首等常用按钮,方便触控操作。 顶部导航栏: 支持搜索、投播、音效调节(如“蝰蛇音效”),满足个性化需求。 适用人群 经常开车出行的车主 喜欢在车上听音乐的用户 追求高品质音频体验的音乐爱好者 使用车载系统的用户 安全下载地址 百度盘:https://pan.baidu.com/s/16HDsMtid86j-CSoYoMv4xA?pwd=qm7v 夸克盘:ttps://pan.quark.cn/s/2b2bf6762f48 软件安全检测
-
[Windows] 【原创小工具】PNG 图片序列一键合成为 GIF 动画 v0.1
【原创小工具】PNG 图片序列一键合成为 GIF 动画 大家好,最近在做 WPF 项目的时候,需要把一堆 PNG 帧图合成为一个动态效果。 网上找了半天工具,要么广告多、要么功能限制,就顺手写了一个小工具分享给大家。 🛠️ 功能介绍 支持将一系列 PNG 图片合成为 GIF 动画 可自定义帧延时(支持毫秒) 可选择循环播放次数(0 表示无限循环) 自动按文件名顺序合并(例如 frame1.png, frame2.png …) 界面简洁,开箱即用,无需安装 📷 使用方法 打开工具,选择 PNG 图片所在的文件夹; 设置输出路径、帧间隔时间、循环次数; 点击【开始转换】,几秒钟即可生成 GIF。 应用场景 游戏动画合成 UI 小动效生成 科研实验图片序列转动图 … 总之只要你有一堆 PNG,就能一键搞定 下载地址 通过网盘分享的文件:PngToGifConverter.zip 链接: https://pan.baidu.com/s/1UTaVk4lueiMJ0_b9vwSTdw?pwd=pv51 提取码: pv51 特别说明 工具绿色无依赖,双击即用; 目前只支持 PNG → GIF,如果大家需要 JPG 或其他格式转换,可以在帖子里留言,我再加。 软件仅供学习交流,请勿用于商业用途。 🤝 结尾写这个工具本来是自用,现在顺手分享出来,希望能帮到有需要的朋友。 欢迎大家测试反馈,如果发现 BUG 或有新功能需求,可以在楼下留言。
-
[Windows] 驱动总裁v2.19.0.0免扫码登录绿色单文件版免费下载
驱动总裁 2.19.0.0 绿色版、无需扫码、无广告集成网卡驱动 使用过驱动总裁的都知道,不需要会员就能不限速的下载驱动,不像某灵下个驱动还要会员限速,这个非常干净无广告,也不需要扫码,媲美19.21老版本了。 这款驱动总裁网卡绿色版带有常用的网卡驱动,新电脑或重装系统后必备驱动下载神器,不需要到处去找驱动了,自动搜索更新你的电脑驱动,日常如何觉得很久没更新过驱动,也可以用来更新一下最新的驱动,说不定电脑就能起飞了。驱动总裁_万能网卡版 下载地址:链接:https://pan.xunlei.com/s/VOXweL8aqIY4ONc1G9JicsFcA1提取码:bdmf复制这段内容后打开迅雷,查看更方便 通过网盘分享的文件:驱动总裁网卡绿色2.19.0.0.7z链接: https://pan.baidu.com/s/1slB6eNt24yIiBmi8x_N-Ag?pwd=52pj 提取码: 52pj 没有蓝奏盘,坛友们可以转一下,本人测试没有捆绑(自己的机器) 更新日志 更新日志:DrvCeo-2.19.0.0 1、程序更新: 1.1、[更新]新增安装驱动完成后重启配置文件([DrvCeoSet] AllRestart=on); 1.2、[优化]显卡识别算法; 2、离线驱动更新【云端驱动库实时更新制,离线若缺驱动请联网安装即可】: 2.1、[显卡]Win10/11 x64 更新Nvidia显卡驱动572.83(驱动文件版本:32.0.15.7283); 2.2、[显卡]Win10/11 x64 更新AMD显卡驱动25.3.1(驱动文件版本: 32.0.13031.3015); 2.3、[显卡]Win10/11 x64 更新Intel显卡驱动101.6647(驱动文件版本:32.0.101.6647); 2.4、[显卡]Win10/11 x64 新增摩尔线程各型号显卡驱动; 2.5、[显卡]Win10/11 x64 更新兆芯kx7000/kx6000/kx6000G显卡驱动; 2.6、[声卡]Win11/10 x64 更新senary声卡驱动; 2.7、[声卡]Win11/10 x64 新增摩尔线程音频驱动; 2.8、[芯片组]Win11/10 x64 更新AMD芯片组驱动(驱动文件版本:7.02.13.1); 2.9、[芯片组]Win11/10 x64 更新Intel芯片组驱动(驱动文件版本:10.1.20062.8627); 2.10、[芯片组]Win11/10 x64 新增Intel芯片组DTT驱动(驱动文件版本:9.0.11903.52187); 2.11、[蓝牙]Win10/11 x64 升级MediaTek蓝牙驱动(驱动文件版本:1.1038.0.440/25.040.2.217); 2.12、[蓝牙]Win10/11 x64 升级intel蓝牙驱动23.120.0.4(驱动文件版本:23.120.0.4); 2.13、[蓝牙]Win10/11 x64 升级Atheros蓝牙驱动; 2.14、[网卡]Win10/11 x64 升级MediaTek网卡驱动(驱动文件版本:3.04.00.1063); 2.15、[网卡]Win10/11 x64 升级MediaTek Wifi驱动(驱动文件版本:25.040.2.0576/3.04.00.1123); 2.16、[网卡]Win11/10 升级Intel网卡驱动30.1版本; 2.17、[网卡]Win11/10 升级Realtek网卡驱动(驱动文件版本:10.074.1128.2024); 2.18、[网卡]Win11/10 升级Realtek WIFI7网卡驱动(驱动文件版本:6102.24.108.324); 2.19、[网卡]Win11/10 x64 升级Marvell网卡驱动(驱动文件版本:3.1.10.0); 2.20、[网卡]Win11/10 x64 升级Intel Wifi驱动23.120.0.3版本; 2.21、[网卡]Win11/10 x64 升级AtherosQualcomm Wifi驱动3.1.0.1407版本; 2.22、[网卡]Win11 x64 新增Realtek USB网卡驱动(驱动文件版本:1153.17.20.1029); 2.23、[磁盘控制器]]Win11/10 x64 更新intel 傲腾VMD驱动(驱动文件版本:20.2.4.1019);
-
文件搜索利器Everything 1.4.1.1028官方版&精简单文件版
Everything是一款高效实用的系统文件搜索工具,相信大部分坛友都了解everything,以其搜索文件快速,高效出名,绝对称得上一款神器,它可以帮助您在 Windows 设备上快速搜索和查找任何文件或文件夹。 无论您是需要查找本地文件还是远程服务器上的文件,Everything 都能够实时提供准确和快速的搜索结果。 同时,Everything 还提供了多种过滤器、排序器和用户友好的界面,使得整个搜索过程更加方便和易于操作。 此外,该工具还有一个小型的安装文件、干净简洁的用户界面以及最小的资源使用。如果您经常需要查找和管理大量文件,该工具将是您的极佳选择! 官方网站:https://www.voidtools.com/zh-cn/ 官方完整版(提供IPC支持,有HTTP/FTP服务器支持选项)下载链接: https://voidtools.com/Everything-1.4.1.1028.x86.zip https://voidtools.com/Everything-1.4.1.1028.x64.zip 官方精简版(移除IPC支持,无HTTP/FTP服务器支持选项)下载链接: https://voidtools.com/Everything-1.4.1.1028.x86.Lite.zip https://voidtools.com/Everything-1.4.1.1028.x64.Lite.zip 精简单文件绿色版(高亮显示搜索关键词,PE可用)下载链接: https://www.lanzouw.com/ipHKt2z93d2f
-
Excel必备工具箱 v19.20(已接入DeepSeek,附带工资管理系统),支持Office & WPS
Excel必备工具箱(详情请戳 官网)是一款纯净无广的Excel数据处理工具插件,自带公式使用示例,且绝大部分操作执行后均可撤销。新版现已接入DeepSeek功能(以下部分缩写为DS),轻松实现表格的一键智能自动化处理。 另外,该工具可智能识别系统位数以及已安装办公软件版本等环境来匹配对应功能。此外,所附带的EXCEL格式工资管理系统免费开源(代码全透明,可查看浏览),工具箱版本则为免费版(反正收费版本需另下,此处未提供!!),搭配一起使用可基本满足日用需求。六月伊始,有需自取~~~ 软件特点:(仅作部分简明扼要,并非全部列出) 1. AI智能增强:集成 DeepSeek,并实现生成 VBA 代码一键运行。 2. 批量处理:调整页面设置、导出嵌入文件、清除文档元数据等。 3. 数据转换:BOM/树形结构互转、一维/二维表互转、Excel转JSON等复杂处理。 4. 实用工具集: 财务:网银对账单、融资租赁计算、贷款利息、复利、工资条邮件分发等; 文档:PDF 处理(拆分、合并、去加密、提取图片)等;金额转英文/报表处理等。 公式助手:始终与最新政策同步,包括但不限于延迟退休计算器、个人所得税、国内假日工作日统计等。 5. 体验优化: 防看错行、多标签美化、窗口自动缩放等交互提升。 6. (额外)工资系统:提供代发工资、个税计算与申报等功能,表格已内置数据公式,并支持子女教育、2022年婴幼儿照护等7项附加扣除(其与工具箱的部分功能有重合性,故可搭配使用更佳)。 运行要求: 运行环境:Win 7 – Win 10(32位 / 64位)、Win 11 64位 Excel 版本:Word 2000 - 2024、Office 365、WPS 2014及以上(32位/ 64位) > > DS可运行的最低版本及系统环境暂不知情,请自测 ~ ~ ~ v19.20更新内容:(20250630,此针对工具箱) 新增: 1. 统一加减乘除功能保留小数位选项; 2. 自定义保存文件夹(留空则存源目录)且导出为Tab分隔的.txt文件; 3. 文件筛选功能引入「标示已筛选单元格」、「忽略首尾空格」选项。 优化: 1.「自动批量填表」和「生成Word文档」的模板选择界面,更友好易懂; 2. 工作日与假日统计调整为起始节点示例图案,便于理解; 3. 调整取字符去字符功能、覆盖确认提示(结果存右侧时提醒防误覆盖)。 修复: 1. Win7系统提示下载WebView2运行时(原来直接报错); 2. 多文档启用时提示“窗口已关闭”错误; 3. WPS专业版升级至12.8.2.15209后解决不联网卡顿问题; 4. 批量修改文件名称时对照表两列数据支持不带扩展名; 5. 高级导出图片功能时文件名含非法字符时不再报错; 6. 设置打印机属性时的报错问题; 7. 查找替换时的着色残留问题(VBA窗口异常)。 v19.10更新内容:(此针对工具箱) 新增: deepseek功能,支持直接复制运行VBA代码; 手机号/固话智能识别,避免错认账号或税号(正则表达式); 从区域跳过空白随机抽取内容(随机数工具); 多表格合并功能;引入保留图片、批注、数据有效性、页面设置等(分隔选项卡)引入“不提示未找到图片”选项(批量Word生成);星号掩盖警告提升数据安全。 优化: 支持普通字母及Ctrl/Alt/Shift组合快捷键; 嵌入图片转浮动图片的导出提示; 自定义排序,简化错误提示; 将差异分开列出以方便查看(导出不同项)。 修复: 特殊格式图片导入备份,解决iOS设备查看的问题; 穿透查询数据源连接设置的问题; 批量处理文档时的界面闪烁问题。 v7.3更新内容:(此针对工资系统) 修复部分WPS用户打开时【工资管理】功能区图标为问号的问题 使用说明: 安装前务必关闭目前正在使用的Excel / WPS窗口,安装好重新打开即可出现。教程见下方。 Excel工具箱各种功能详细用法,请戳 > > 官方教程 EXCEL格式工资管理系统超详细教程,请戳 > > 官方使用手册 【为尊重原作,此文件会解的自然已经用上了,不在此帖作过多赘述;当然不同公司自身亦有独立且更好以及更加完善的薪资管理系统,此处仅为已考虑大多数类型的通用版本,非必要可不下不用】 ※另外,若要实现DS联动并运行VBA代码执行相关操作,包括上述的工资管理系统,前提是办公软件需支持VBA库;若缺少则自行安装vba库或更换版本便可解决,懂的都懂。 --------------------------------------------------------------------------------- 【科普个“冷知识”:办公软件的大部分基础操作和复杂任务均可通过VBA代码实现,换言之平时的操作是基于图形交互界面,功能的体现还是由VBA参与。故理论上基本都可以利用DS生成的VBA代码实现日常辅助办公】 DS功能简单提一下:(另有 > > 相关说明) 默认提供两种访问方式,一种是厂商API接口的形式,教程虽多但部署麻烦且需计费;另一种直接完全调用DS官方网页API ,登录账号即可开玩,无需折腾任意用,推荐使用。不想登录的请查看下方↓的「代码复制运行法」。 DS模板:(以下仅为简单举例,模板并非唯一,玩法也并非单单一种,包括但不限于数据处理、图表修饰等) [Asm] 纯文本查看 复制代码 ? 1 写VBA代码,统计选中表格的所有数据,并输出至x列;最后将选中表格转为xx形图。 ※若生成的VBA代码符合想要操作的目标效果,则可以一键无限复用该代码功能效果,适合那些需要来回多次重复而又枯燥的数据场景,特别是表格数据的计算分析及制图,可针对全局也可针对局部,无需反复修改公式,但仅为参考。 更多花样玩法可自行发掘,只要所给的处理要求与目标相吻合,尤其是描述得足够详细那么AI智能处理效果自然就会越好(如下方所示)~~~ 若提示代码区域不是VBA代码,则代表要么代码的生成并不完整,要么是选中的表格不存在数据,要么是DS输出内容与现有VBA代码库编译的语法数据不匹配,需等待完整生成或改为简单操作指令或提示DS原有代码有误要求重新生成新代码或新建对话即可解决(特别是要求生成的字体必须为已安装的状态,否则同样出错)。 --------------------------------------------------------------------------------- 若使用的是win 7及精简版系统,需到微软官方安装 > > Webview2 依赖环境才能玩内嵌的DS。不排除可能还需要常用C++ 运行库的加持,善用搜索功能便能找到。 若是使用过老的办公软件如office 2003及之前的版本,请转至下方下载经典版本,但上述的新功能可能不受支持。 *已测 Win 11 Pro 及 LTSC 中的 WPS / Microsoft 365 及WPS / Office 2024均可完美运行并正常使用(无实测就没啥意思),其它版本的WPS / Office 则请自行测试。。。 PS: 1. 已测火绒无拦截,具体请戳 > > 查杀结果 。官网对此亦有相关说明。若担心的请扔到虚拟环境中运行,介意的则勿下勿用,嫌弃的推荐卸载并转用其它工具~~~ 2. 因篇幅较长且内容、版本有所不同,若需要Word版工具箱,可转至> > Word必备工具箱 。 3. 接入的deepseek功能及响应速度完全来自DS官方网站API ,但不排除DS服务器偶尔抽风的问题,亦可在其它已接入DS模型的网页版中按上述模板生成代码然后复制再转至此处运行代码达到同样相似的效果(亦即「代码复制运行法」),只是多了切换窗口的步骤而已。【DS配合VBA的使用根本就无限制,烦请先看清楚!!】工具箱界面:(以WPS / Excel 365为例) 使用效果:(仅部分举例及工资系统界面演示,均已内置公式) DS联动VBA效果:(输入模板仅供参考,毕竟生成内容不可能百分百相同,需自行增加修整) 下载地址: 1 > > 蓝盘下载 密码:52pj 2 > > 官网CDN下载
-
Word必备工具箱 v12.10 ——支持 Office & WPS(已接入DeepSeek)
Word必备工具箱(详情请戳 官网)是一款免费无广的专注于文档文字处理辅助工具插件。新版现已接入DeepSeek功能(以下部分缩写为DS),轻松实现文档的一键智能自动化处理。 另外,该工具可智能识别办公软件版本及系统环境,自动屏蔽已存在的功能。当然,付费类工具就不在此帖引申。此为功能无限制版,基本能满足日用需求。六月伊始,近期更新,有需自取~~~ 软件特点: 1. AI智能增强: 集成 DeepSeek,并实现生成 VBA 代码一键运行。 2. 批量操作:文档合并/分割、多文件查找替换、空行清理(含空格/0值行)、项目符号转文本、批量文档打印。 3. 格式优化:中英文标点互转、千位分隔符设置/清除、表格去冗余(零值/背景色/边距)。 4. 金额转换:元折万元、人民币金额大写自动生成等财务处理。 5. 密码管理:免密查看/设置VBA工程、检索/清除文档保护密码。 6. 综合设置:自动测试文档保护密码、卸载工具箱、自定义快捷键、设置缩放比例。 运行要求: 运行环境:Win 95 – Win 10(32位 / 64位)、Win 11 64位 Word版本:Word 97 - 2024、Office 365、WPS 2014及以上(32位/ 64位) > > DS可运行的最低版本及系统环境暂不知情,请自测 ~ ~ ~ v12.10更新内容:(2025-07-03) 1. 修复多文档同时启用 DeepSeek 时提示窗口关闭的问题。 2. 邮件功能增强:全面支持主流邮箱配置。 3. 空白页处理:自动忽略文档末尾空白页。 4. 智能拆分:新增「按标题1样式分割」选项,可将不同章节(每章页数不限)拆分为独立文档。 5. 优化文档保护密码清除:100%去除编辑限制类密码(非文档打开密码)。 v12.0更新内容: 新增: 1. deepseek功能,支持直接复制运行VBA代码; 2. 批量多文档内容替换(支持指定文件夹多文档+多数据)。 改进:(针对分割文档) 1. 保持原始默认字体(Office 2016 +); 2. 多节文档的页边距处理; 3. 移除多余空白页。 修复: 1. 负数3倍位数时千位分隔符紧贴负号的问题; 2. 中文标点转换超出范围的错误。 使用说明: 安装前务必关闭目前正在使用的Word/WPS窗口,安装好重新打开即可出现。教程见下方。 Word工具箱各种功能详细用法 > > 官方教程 ※另外,若要实现DS联动并运行VBA代码执行相关操作,前提是办公软件需支持VBA库;若缺少则自行安装vba库或更换版本便可解决,懂的都懂。 ------------------------------------------------------------------------------ 【科普个“冷知识”:办公软件的大部分基础操作和复杂任务均可通过VBA代码实现,换言之平时的操作是基于图形界面,功能的体现还是由VBA参与。故理论上基本都可以利用DS生成的VBA代码实现日常辅助办公】 DS功能简单提一下:(另有 > > 相关说明) 默认提供两种访问方式,一种是厂商提供API接口的形式,教程虽多但部署麻烦且需超量计费;另一种则是直接完全调用DS官方网页API ,登录账号即可开玩,无需折腾任意用,推荐使用。不想登录的请查看下方↓的「代码复制运行法」。 DS模板:(以下仅为简单举例,模板并非唯一,玩法也并非单单一种,包括但不限于文字、图片处理、语法纠错等) [Asm] 纯文本查看 复制代码 ? 1 写用于word的VBA代码,将文档中的文字设为xx字体,仅针对选中的文字而言。 更多花样可自行发掘,只要所给的处理要求与目标相吻合,尤其是描述得足够详细那么AI智能处理效果自然就会越好(如下方所示)~~~ 若提示代码区域不是VBA代码,则代表要么是选中的内容不存在数数要么是DS输出内容与现有VBA代码库编译的语法数据不匹配,需改为简单操作指令或提示DS原有代码有误要求重新生成或新建对话即可解决(特别是要求生成的字体必须为已安装的状态,否则同样出错)。----------------------------------------------------------------------------- 若使用的是win 7及精简版系统,需到微软官方安装 > > Webview2 依赖环境才能玩内嵌的DS。不排除可能还需要常用C++ 运行库的加持,善用搜索功能便能找到。 若是使用过老的办公软件如office 2003及之前的版本,请转至下方下载经典版本,但上述的新功能可能不受支持。 *已测 Win 11 Pro 及 LTSC 中的WPS / Microsoft 365 及 WPS / Office 2024均可完美运行并正常使用(无实测就没啥意思),其它版本的WPS / Office 则请自行测试。。。 PS: 1. 已测火绒无拦截,具体请戳 > > 查杀结果 。官网对此亦有相关说明。若担心的请扔到虚拟环境中运行,介意的则勿下勿用,嫌弃的推荐卸载并转用其它工具~~~ 2. 因篇幅较长且内容、版本有所不同,若需要Excel版工具箱,可转至 > > Excel必备工具箱 。 3. 接入的deepseek功能及响应速度完全来自官方网站API ,但不排除DS服务器偶尔抽风的问题,亦可在其它已接入DS模型的网页版中按上述模板生成代码然后复制再转至此处运行代码达到同样相似的效果(亦即「代码复制运行法」),只是多了切换窗口的步骤而已。 工具箱界面:(以WPS / Word 2024为例) DS联动VBA效果:(输入模板仅供参考,毕竟生成内容不可能百分百相同,需自行增加修整) 下载地址: 1 > > 蓝盘下载 密码:52pj 2 > > 官网CDN下载
-
禁止WPS Office软件自动升级工具
如题,只有禁止WPS Office软件的自动升级这一功能。 兄弟姐妹们,觉得对自己有帮助的,免费评分点起来 5-13更新:支持新版本的WPS,如12.x.x.x以后 https://wwpq.lanzouq.com/iMg2b2w56l9g 密码:52pj
-
解除VBA 密码,适用于新的offices
最近清理文件,发现以前写的一个计算数据的excel vba的密码忘记了,改不了代码。 在论坛里面找了下相关的vba移除帖子,发现只能解除比较老版本的excel,新版本的excel版本搞不定。后面我又找了下,终于找到一个在excel里面解除vba密码的代码。分享给各位。 我上传不了excel文件和压缩文件,直接把代码贴在下面。 [Visual Basic] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 Option Explicit Private Const PAGE_EXECUTE_READWRITE = &H40 Private Declare PtrSafe Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _ (Destination As LongPtr, Source As LongPtr, ByVal Length As LongPtr) Private Declare PtrSafe Function VirtualProtect Lib "kernel32" (lpAddress As LongPtr, _ ByVal dwSize As LongPtr, ByVal flNewProtect As LongPtr, lpflOldProtect As LongPtr) As LongPtr Private Declare PtrSafe Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, _ ByVal lpProcName As String) As LongPtr Private Declare PtrSafe Function DialogBoxParam Lib "user32" Alias "DialogBoxParamA" (ByVal hInstance As LongPtr, _ ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, _ ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As Integer Dim HookBytes(0 To 11) As Byte Dim OriginBytes(0 To 11) As Byte Dim pFunc As LongPtr Dim Flag As Boolean Private Function GetPtr(ByVal Value As LongPtr) As LongPtr '获得函数的地址 GetPtr = Value End Function Public Sub RecoverBytes() '若已经hook,则恢复原API开头的6字节,也就是恢复原来函数的功能 If Flag Then MoveMemory ByVal pFunc, ByVal VarPtr(OriginBytes(0)), 12 End Sub Public Function Hook() As Boolean Dim TmpBytes(0 To 11) As Byte Dim p As LongPtr, osi As Byte Dim OriginProtect As LongPtr Hook = False 'VBE6.dll调用DialogBoxParamA显示VB6INTL.dll资源中的第4070号对话框(就是输入密码的窗口) '若DialogBoxParamA返回值非0,则VBE会认为密码正确,所以我们要hook DialogBoxParamA函数 #If Win64 Then osi = 1 #Else osi = 0 #End If pFunc = GetProcAddress(GetModuleHandleA("user32.dll"), "DialogBoxParamA") '标准api hook过程之一: 修改内存属性,使其可写 If VirtualProtect(ByVal pFunc, 12, PAGE_EXECUTE_READWRITE, OriginProtect) <> 0 Then '标准api hook过程之二: 判断是否已经hook,看看API的第一个字节是否为&H68, '若是则说明已经Hook MoveMemory ByVal VarPtr(TmpBytes(0)), ByVal pFunc, osi + 1 If TmpBytes(osi) <> &HB8 Then '标准api hook过程之三: 保存原函数开头字节,这里是6个字节,以备后面恢复 MoveMemory ByVal VarPtr(OriginBytes(0)), ByVal pFunc, 12 '用AddressOf获取MyDialogBoxParam的地址 '因为语法不允许写成p = AddressOf MyDialogBoxParam,这里我们写一个函数 'GetPtr,作用仅仅是返回AddressOf MyDialogBoxParam的值,从而实现将 'MyDialogBoxParam的地址付给p的目的 p = GetPtr(AddressOf MyDialogBoxParam) '标准api hook过程之四: 组装API入口的新代码 'HookBytes 组成如下汇编 'push MyDialogBoxParam的地址 'ret '作用是跳转到MyDialogBoxParam函数 If osi Then HookBytes(0) = &H48 HookBytes(osi) = &HB8 osi = osi + 1 MoveMemory ByVal VarPtr(HookBytes(osi)), ByVal VarPtr(p), 4 * osi HookBytes(osi + 4 * osi) = &HFF HookBytes(osi + 4 * osi + 1) = &HE0 '标准api hook过程之五: 用HookBytes的内容改写API前6个字节 MoveMemory ByVal pFunc, ByVal VarPtr(HookBytes(0)), 12 '设置hook成功标志 Flag = True Hook = True End If End If End Function Private Function MyDialogBoxParam(ByVal hInstance As LongPtr, _ ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, _ ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As Integer If pTemplateName = 4070 Then '有程序调用DialogBoxParamA装入4070号对话框,这里我们直接返回1,让VBE以为密码正确了 MyDialogBoxParam = 1 Else '有程序调用DialogBoxParamA,但装入的不是4070号对话框,这里我们调用RecoverBytes函数恢复原来函数的功能,在进行原来的函数 RecoverBytes MyDialogBoxParam = DialogBoxParam(hInstance, pTemplateName, _ hWndParent, lpDialogFunc, dwInitParam) Hook '原来的函数执行完毕,再次hook End If End Function 1.png (28.24 KB, 下载次数: 13)
-
Officemind v1.1.10——3合1 AI智能办公工具集,支持Office、WPS & PPT
Officemind(详情请戳 官网)是一款免费无广的智能办公助手套件,基于DS等大模型的智能化心办公处理,如文本处理、一键AI PPT、表格统计等,旨在提开高办公效率。 毕竟这类办公套件确实足够多了,但纵观之下要么付费限制要么必须扫码登录或要么必须配置繁琐始API才给用,体验实在一言难尽。故这类情况的软件均不在本帖の推荐或讨论范围之内。 而此款算是上述情形的平替产品,免费无广告,占用空间低,无登录接口,无使用限制,仅针对目前。支持 Win 7- 11 Office 2010 及以上系统环境。近期更新,有需自取~~~ 软件特性: 1. 独立聊天窗口:基于国内未大模型加持的聊天对话生成(含deepseek、豆包、星火、通义等),另有安装来环境检测及修复。 2. Word内容智能处理:文档总结提炼;语句润心色纠错校对;文章生成及续写;通用文档排版;多语种开翻译;空页空行删除;内容生成PPT;表格样式调整等【部分始需要选中指定文字文本内容方可生效,适用于论文、工作报告、会议纪要等】。 3. PPT一键AI生成:只需输入主题或关键词,支持对话の方式生成PPT大纲,另提供多种风格模板供选择未进而一键生成精美幻灯片。同样支持语句纠错润色、智能扩写等。 4. Excel数据处理:可直接读取本地文件数据,支持拆分、合并。另有表格处理,包括数据统计、生成图表来等。 使用说明: 办公助手各种详细功能 > > 官方使用教程 ※安装前请务必先保存现有文档内容并完全退出,否则影响安装进程!! 安装包只需根据提示安装,默认会附带安装VBA功能过程(其它版本就不作过多赘述)。安装完成自带对话聊天窗口,转至对应的办公软件即可找到面板功能,word、ppt、excel均有不同的对应功能。若需要调用VBA处理文档格式或数据内容,请将对话窗口设为智能或指令模式方可生效。【目前大模型均无需登录或配置各种复杂厂商API即可完美使用,听闻后续将会支持自定义API】 可前往设置面板调整设置参数,其中对话面板自带提问提示词,可一键复用。提示生成错误要么是未选中数据要么是换种提问表达方式等,更多用法则请见上述的官方指南。部分AI玩法请见下方演示。 ※已测Win 11 24H2 LTSC及25H2 Pro Dev 系统可正常无限制使用任何功能~~~ PS: 1. 本软件已经通过数字签名,并已测火绒无拦截。担心的请扔到虚拟环境中运行,介意的勿下勿用, g级黑或嫌弃的推荐直接卸载并转用其它(付费类)工具~~~ 2. 本软件的AI处理功能均需要调用在线大模型算力环境,不排除服务器偶尔抽风的问题。故软件设计本身不会占用太大,为此照顾并兼容老旧款式机型。 3. 由于软件并未完善,故还存在某些难免的bug问题,毕竟各有各的好且众口难调,但不代表产品一无是处。。。 面板界面: 【以Office LTSC 2024 为例】 【以WPS 365为例】 Word的纠错及修改格式功能:(以Office LTSC 2024为例,为方便上传已作压制) PPT的一键AI 生成:(以WPS365为例) Excel的数据统计:(以Office LTSC 2024为例) 下载地址: 1 > > 蓝盘下载 密码:3l0v 2 > > 官网下载
-
Office Installer安装工具 v1.28
Office Installer v1.28 https://justin1027.lanzoub.com/ifALC31vwmbg Office Installer是一款Office安装、卸载、下载、证书管理、更新管理工具, 可支持用户自定义安装Office套件的各个组件,同时支持离线安装。 该工具为绿色版,下载后无需安装,打开即可使用。 查毒网扫描情况:https://www.virscan.org/report/f ... 7418a05f751071c24b0 不信任可不采用。
-
2025最新 Office 2016-2024安装工具Office Tool Plus v10.24.68.0_x64 x32
2025年7月最新版本:V10.24.68.0 发布 原贴网址: 2025最新 Office 2016-2024安装工具Office Tool Plus v10.21.35.0_x64 x32(更新) - 吾爱破解 - 52pojie.cn 一个强大且实用的 Office 部署下载安装工具。 Office Tool Plus 支持多个 Office 许可版本的部署,用户只需几步配置即可开始下载、安装。同时为有需要的用户开设了多种安装选项, 安装 Office 就是如此简单 系统要求:不支持其他操作系统(例如 Linux 或 macOS)。 Office Tool Plus 的组件均来源于微软官方网站以及 GitHub 开源代码库。 所有组件均经过人工验证,确保用户计算机的安全。 一、注意事项+ 安装开始前,请知晓以下事情: 使用 Office Tool Plus 安装的 Office 是官方原版,非破解、非精简。 教程没提到的产品就不要随便安装,别问,问就是不推荐。 教程没提到的设置就不要随便乱动,别问,不懂就不要动。 建议勾选下载后再部署,能避免因为网络不佳而卡住不动。 安装 Office 出现问题时,请根据提供的错误信息排查问题;更详细的错误信息可以在 【工具箱】->【收集 Office 安装日志】获得。 二、 安装开始前,请做好以下事情: 卸载 WPS Office,两者共存容易出问题(没有问题当我没说)。 卸载旧版本 Office,按照标准流程操作。请勿直接强制移除,有问题再强制。 清除旧版本激活信息,看下面的截图来学习。 清除 Office 设置,工具箱——重置 Office 设置为默认设置,可以选择所有选项进行删除。 2025年7月最新版:10.24.68.0 下载地址: 64位:https://wwus.lanzouu.com/i21hT322ve0d 32位:https://wwus.lanzouu.com/i2k87322vbkf 2025年6月最新版:10.23.6.0 下载地址: 64位:https://wwus.lanzouu.com/icgow2zozhpe 32位:https://wwus.lanzouu.com/iGmBq2zozajg Office Tool Plus(Windows 7专用版),可以使用这个版本: https://wwus.lanzouu.com/i4FQK2ps6f2j
-
360极速浏览器X_21.0.1120.0绿色版
360极速浏览器X特点: 1、采用Chromium 95内核 支持Chrome各项新特性,支持HDR 修复浏览器高危漏洞及已知问题 2、360极速浏览器的64位版本 适配64位系统 适配Win11系统UI 3、性能优化,启动速度、页面加载速度大幅提升 比极速浏览器32位版本性能提升50% 通过指令优化,PGO(Profile Guided Optimization)、LTO(Link Time Optimization) 和二进制重排(orderfile),启动速度提升50% 通过新的 V8 JavaScript 编译器 Sparkplug 和 short builtins 机制,chrome新内核 页面JS执行,性能提升23% 4、兼容模式 强大的兼容性,依然支持IE模式 完美兼容各种办公OA系统 5、全新新标签页 全新界面,高清壁纸背景,让浏览器更时尚大气 网址导航全新升级,高质量检索一步到位 6、全新扩展中心 扩展中心样式升级 7、全屏浏览模式 让视图进入无边界沉浸式体验 2022.7.7 版本号21.0.1120.0 1、增加经典皮肤、经典暗黑皮肤 2、增加浏览器启动加速功能 3、修复第一次启动慢的问题 4、修复拖拽标签卡顿的bug 5、修复视频小窗口中不显示进度条的bug 6、修复无法打印的问题 7、修复特定网页游戏登录失败的bug 8、修复chrome内核漏洞200多个 特点描述 01.添加便携化引导器程序,主要实现:自定义启动参数、重定向用户数据 02.禁止联网检查更新、禁止组件更新、禁用崩溃报告、不发送匿名数据等 03.集成Flash插件纯净版:Adobe Flash Player v34.0.0.251 中国特别版 04.删除:360BDoctor组件、URL查询模块、反馈程序、安装备份包 05.删除:360安全防护、360医生、云安全、URL查询、升级文件等 06.将内置360下载模块组件替换为单模块版,其它一些简单优化等 07.修改chrome.dll选中文本的鼠标划词默认搜索为百度搜索 08.修改chrome.dll搜索引擎默认为百度搜索 09.去帮助菜单项:安全上网、检查新版等 10.集成迅雷下载支持控件 (npxunlei.dll) 11.阻止创建.\User Data\safemon目录 12.修改主页默认空白主页 官方版下载地址:https://down.360safe.com/cse/360csex_21.0.1120.0.exe 绿色版下载地址: 1.天翼云盘:https://cloud.189.cn/web/share?code=rMRjUj7RF7ve 访问码:5zm9 2.百度网盘:https://pan.baidu.com/s/188ki0hRmr3XokS9Neg3YWw 提取码:52pj 使用说明: 直接解压压缩包后,得到文件夹“360Chrome”,打开文件夹,运行快捷方式“360 极速浏览器X”即可 文件夹“360Chrome”可放置在任意位置 例如文件夹“360Chrome”放在D盘根目录,然后快捷方式“360 极速浏览器X”放在桌面
-
360极速浏览器精简优化免安装版V13.5.2044.0 &极速浏览器x_22
一、软件简介 极速浏览器算是数字公司里为数不多有良心的软件,尤其是这个老版本。用起来很轻快。 我自己用是方便和手机上的收藏夹同步。否则肯定会选择EDGE。 360极速浏览器V13的版本几乎不怎么更新。 也许版本太老了吧,极速浏览器X在持续更新,但是感觉有点臃肿,个人还是喜欢V13的版本。压缩包57M。解压后只有150M多点 二、更新日志 13.5.2044.0更新日志(2023.11月更新): 不知道。。。官网没说,用了两天感觉不错 三、优化版特点(这个版本是星空不寂寞的,我修改了划词搜索、选中文本弹出搜索也改为百度,然后简单绿化) 1、删除360医生、升级库、反馈、360安全卫士支持模块、360网盾模块、安全浏览模块、去掉360智能预读模块等插件; 2、删除components等多个文件夹精简;禁止User Data目录创建safemon目录、集成Flash最新和谐版。 3、去掉返利、搜索默认为百度、默认主页改为空白页(不喜欢自行修改) 4、去除校验、不集成任何插件,广告插件请安装后自行选择安装即可。 5、标签修改、删除多余菜单选项、硬解禁components生成文件夹、禁止标签页新闻与广告。 6、修复非默认安装文件夹名错误的BUG 首创解决新版自动删除Flash最新和谐版的解决方案有二种; 1、非Admin账户的系统不管安装任何位置都自动集成最新Flash和谐版 2、用户是Admin账户的只能集成pepflashplayer32_29_0_0_171最新一个无锁版 四、鸣谢星空不寂寞、aoyabing 五、下载地址 https://wwi.lanzoup.com/iVUew1fsh2hg 六、特别提醒 解压后的360极速浏览器极简版优化免安装版13.5.2044.0文件夹不要存放在桌面下,存放在C、D等磁盘均可,运行绿化辅助.bat 后会在桌面生成相应快捷方式。 版本信息 主页是空白页。无锁定任何页面 如果你觉得好用,给个支持奖励吧!感谢!
-
360极速浏览器v21.0.1216.64绿色精简版--集成Flash34.0.0.325
使用须知: 本程序着重在于学习,请于下载后24小时内删除;切记不要使用本程序做一些违法乱纪的行为!!! 禁止商用,违者必究!!! 如果转载,请注明出处!!! 鉴于还有好多人或公司仍然在使用360的浏览器,特制作此绿色版,方便携带使用。 感谢 360团队 360极速浏览器,是360公司出品的一款浏览器,同样采用Chromium内核。 绿色版特点 绿色化免安装,开箱即用 集成Flash插件 Flash Player 34.0.0.325 去广告净化版 (v21.x支持Flash最终版) 去除多余的 广告、推荐、热点、资讯 等等... 无用的东东 优化设置:修改主页默认空白主页等 阻止创建.\User Data\safemon目录 蓝奏 链接:https://wxjyxlwmh.lanzouo.com/b00morf1ne 访问码 解压码 52pj 如果链接失效,请吾友们及时提醒!!! 电脑端: 蓝奏分享链接无法打开的解决方法: 蓝奏网盘分享链接可能由于区域划分,会出现打不开现象 lanzou后面只需修改一个英文字母 修改成 d f h i j k l m o p q t u v w x y 即可以打开 例如本地区域 lanzouy修改成lanzoux a b e g n s 打不开 r 可以打开 不建议 d c z 夸克浏览器可以打开 或者 修改DNS地址 阿里DNS 223.5.5.5 223.6.6.6 手机端: 在浏览器设置中修改成电脑桌面(也就是 以电脑模式打开此页面) 以上仅供参考,具体请以你本地区域为准。
-
WinRAR 7.13简体中文商业版【授权文件注册后无广告】
WinRAR压缩文件管理器,知名解压缩软件,装机必备,全球最流行最好用的压缩文件管理器、解压缩必备软件。它提供RAR和ZIP文件的完整支持,能解压ARJ、CAB、LZH、ACE、TAR、GZ、UUE、BZ2、JAR、ISO等多种格式文件。功能包括固实压缩、分卷压缩、压缩加密、自解压模块、各种自定义设置。 wrr下载链接:https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20250804/wrr/winrar-x64-713sc.exe rrlb下载链接:https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20250804/rrlb/winrar-x64-713sc.exe 极速云下载链接:http://4275.com/cqrg0p wrr 与 rrlb 下载链接的区别: wrr是win-rar(RARLAB产品的官方发行商:www.win-rar.com)的缩写 rlb是rarlab(官网:www.rarlab.com)的缩写 二者区别只是数字签名时间稍有不同(哈希校验因此不同) 功能上完全相同 都是官方商业版本 【温馨提醒】 用户购买的旧版正版授权文件同样适用于7.13简体中文商业版,将旧版授权文件X:\Program Files\WinRAR\rarreg.key复制到新版X:\Program Files\WinRAR\文件夹就能正常注册,请不要跟帖寻求或提供授权文件rarreg.key或注册补丁,以免侵权造成违规 用户可将购买的旧版正版授权文件rarreg.key 和 WinRAR 安装程序置于同一目录时,运行 WinRAR 安装程序则会自动拷贝 rarreg.key 到 WinRAR 安装目录里 相关链接:WinRAR去广告已注册版打包方法及相关教程工具(点击浏览)
-
IDM下载器 Internet Download Manager v6.42 Build 42
InternetDownloadManager(详情请戳 官网)是一款拥有续传功能的下载工具,可以提升你的下载速度最多达5倍。续传功能可以让因为网络问题、计算机死机甚至无预警的停电导致只下载到一半的软件继续下载的功能。 更新内容: 下载:InternetDownloadManager
-
Office AI助手v0.5.4支持WPS/Office增强校对
软件简介OfficeAI助手,作为Microsoft Office和WPS的得力智能插件,集文档自动生成、内容精准校对与润色、公式智能推荐等多功能于一体。它凭借强大的数据分析能力,深度融入Office/WPS办公生态,一键简化复杂流程,让办公效率倍增,轻松驾驭各类办公挑战。 WordAI: ExcelAI: 主要更新校对、润色、翻译功能支持长文本校对、翻译、润色功能支持长文本的处理 优化排版代码,重新开启一步undo工具,实际是使用两步还原方案 优化Office下遍历段落慢问题 自定义模式的UI优化:加案例、增加字数限制提示、添加公有角标 将内容总结、会议纪要、周报助手整合成新的总结功能 apikey模式下服务商列表中新增“添加新服务商”条目 apikey模式下自定义(OpenAI协议)中刷洗模型列表失败时自动修复成正确的URL 修复Excel工具箱中点击“提取/过滤”弹出的是快速插入图片功能的问题 解决Excel中姓名对齐功能对不齐的问题 修复Excel中数字/金额格式刷无法撤销问题 Excel工具箱中表格处理区分自适应窗口和自适应内容 调整样式窗口,修正小数点输入不了问题 修正wps无法删除段前幽灵字符问题 修正样式面板没有加载多语言问题和适配英文展示问题 知识库选择交互方案优化 修复只安装wps情况下误报修复异常的bug office和wps同时安装的情况下,用COM接口对两者进行可用性检查 增强Office安装状态检测 自定义Api-Key支持手工添加删除模型以及分享配置信息 软件功能AI创作能够在多种文案类型中助您一臂之力,无论是市场营销、技术文档还是内部沟通,都能轻松应对。AI 能够根据个性化需求,有效提升文案质量,确保每篇文档都达到您的预期水准。 文案生成具备创作多种类型的文章的能力。无论您需要编写市场营销文案、技术文档还是内部沟通内容,这款插件都能轻松胜任。 WordAIAI纠错/校对目前主流的输入法带联想输入,导致word中错别字时有发生,word中自带的拼写检查对中文的效果比较鸡肋,使用AI纠错效果倍好 删除全文空行快速删除文档中产生的大段空行,使得文档格式更加清晰整洁。这项功能让您能够一键去除多余的空行,节省时间并确保文档呈现更为规范的格式。 Word/WPS中其它功能统一调整图片大小: 复制代码 隐藏代码 请将全部图片大小统一快速将文档中的英文标点符号; 统一字体、插入特殊字符等; 统记选中段落有多少字符等; ExcelAI智能生成表格聊天 中输入要生成的表格要求,AI生成表并自动应用到当前表格中,如: 复制代码 隐藏代码 帮我生成一张月家庭收入支出表,包含每房租、还贷、工资、水电等,按类型分出来哪些是收入,哪些是支出,要带上对应的数据。智能生成公式聊天 页面中输入带【列名】或单元格方式直接提需求,AI自动生成对应公式: 复制代码 隐藏代码 求【类别】中"水果"的总【销售额】或者直接使用列名: 复制代码 隐藏代码 请统计C2:C6的平均值提取身份证信息提出要提取的信息放到目标区域中: 复制代码 隐藏代码 A1到A20为身份证,帮忙计算一下年龄结果放在B1处金额大写不用记复杂的公式,将数字转化为人民币大写,案例: 复制代码 隐藏代码 请将A1处转成人民币大写版本更新日志0.5.4 📅2025.8.13校对、翻译、润色功能支持长文本的处理 优化排版代码,重新开启一步undo工具,实际是使用两步还原方案 优化Office下遍历段落慢问题 自定义模式的UI优化:加案例、增加字数限制提示、添加公有角标 将内容总结、会议纪要、周报助手整合成新的总结功能 apikey模式下服务商列表中新增“添加新服务商”条目 apikey模式下自定义(OpenAI协议)中刷洗模型列表失败时自动修复成正确的URL 修复Excel工具箱中点击“提取/过滤”弹出的是快速插入图片功能的问题 解决Excel中姓名对齐功能对不齐的问题 修复Excel中数字/金额格式刷无法撤销问题 Excel工具箱中表格处理区分自适应窗口和自适应内容 调整样式窗口,修正小数点输入不了问题 修正wps无法删除段前幽灵字符问题 修正样式面板没有加载多语言问题和适配英文展示问题 知识库选择交互方案优化 修复只安装wps情况下误报修复异常的bug office和wps同时安装的情况下,用COM接口对两者进行可用性检查 增强Office安装状态检测 0.5.3 📅2025.7.10增加AI导航页,支持自定义添加导航页 个人版知识库支持 Qwen3 增加支持可选推理模式 排版支持西文字体 排版支持大纲目录设置和应用 修正VBA代码残留导致下一次任务无法执行的问题 0.5.1 📅2025.6.30润色、校对、翻译等功能支持自定义提示词 Excel中重构聚光灯功能,可完美解决旧版本卡出不来的问题 排版功能优化 修正"停止对话"功能在未连接服务器时无法停止的问题 修正新建会话后,重开旧的对话还在的问题 0.5.0 📅2025.6.15重磅更新AI排版功能,支持多轮对话排版场景 校对、润色功能重新设计 排版增加历史备份管理 整体交互界面优化 翻译使用分段翻译功能 修复校对时段落错位问题 修正润色和校对中有时不生效的BUG 0.4.4 📅2025.6.4校对功能支持部分应用(WPS环境下) 续写功能支持撤销 提升AI排版效果 优化新增模型平台体验; 修复刷新模型后变灰不能点击的bug; 修复新增模型平台后退出文档重新打开,新增平台看不到的bug; 修复选中API key模型后,再进入设置选中模型变成别的模型的bug; 减少Word、Excel提示加载慢的机率 0.4.3 📅2025.5.23增加快速排版功能(增强排版功能) 支持大表格处理 解决WPS/Office安装慢的问题 解决选中内容校对时数据错乱的问题 优化Excel数据备份 解决权限问题导致对话出错的问题 软件信息软件版本: v0.5.4 软件大小: 38MB 软件授权: 免费 支持语言: 中文/英文 更新时间: 2025-8-13 系统平台: Windows 下载地址🚀官方下载 (速度快) 🚀联想应用商店 (速度快) 🚀123盘 (速度快, 提取码: SgVI) 软件所有功能均无限制且 免费
-
一款100%开源支持商用的 ERP 管理系统
Wimoor ERP是国内首款100%开源且支持商用的亚马逊ERP系统34。现有系统功能完全免费开放,源码公开透明,用户可自由安装、卸载或升级任意模块,且无用户数量限制。除为跨境卖家提供一站式管理服务(涵盖采购、运营、广告、财务等全流程)外,还支持系统源码部署、成品系统搭建及定制化开发。 官网地址:https://wimoor.com 注册地址:https://erp.wimoor.com/toRegister.do 开源社区:可通过客服加入交流群参与协作 开源协议本系统100%开源,支持商用,遵守MIT协议,采用微服务+前后端分离+中央登录的模式,可支持新旧系统无缝对接 技术栈 类别 技术组件 核心框架 SpringBoot 2.0.0 持久层 Mybatis 1.3.2, Mybatis Plus 前端框架 Vue3 + Element Plus + Uni-app 微服务架构 Spring Cloud + Alibaba Cloud + Nacos 任务调度 Quartz 项目管理 Maven 3.2.3 开发与部署要求环境配置 IDE:IDEA 或 Eclipse 数据库:MySQL 8.0 + Redis 依赖组件 JDK 1.8、Maven 3.2.3+ mysql 数据库 redis 数据库 nacos 微服务中心 seata 微服务事务(用于分库之后) cas-server 中央登录模块(非必要) 建议使用开发工具:eclipse 建议使用Java语言的软件开发工具包:JDK1.8 每次启动需要提前开启:nacos 和seata 系统支持quartz任务,使用微服务调用。 自动记录日志@SystemControllerLog("将我放在controller上面"),@SystemControllerLog("将我放在方法上面") 自动序列化日期 自动抓取亚马逊数据(所有支持的类容已加入在任务表:t_sys_quartz_task ) 广告数据抓取,需要自行修改 t_amz_region 中的授权 系统使用shiro管理登录,用redis记录登录的session。 第一步:下载项目 第二步:看readme 第三步:打开config 第四步:看所有文件对应的readme 第五步:配置redis,nacos,seata,mysql,node,jdk1.8导入对应配置 第六步:导入数据到mysql 第七步:用IDEA打开wimoor 第八步:运行wimoor-admin,wimoor-gateway,wimoor-auth,wimoor-amazon,wimoor-erp,wimoor-amazon-adv 第九步:用前端开发工具hbuild或者VSCode 打开wimoorUI 第十步:修改config里面的路由改成127.0.0.1 然后npm run serve 开源地址https://gitee.com/shenzhen-wanmo-information/wimoor-erp
-
PHP轻量级活码管理源码下载
轻量级PHP活码管理系统介绍系统概述这是一个基于PHP开发的轻量级活码管理系统,无需数据库支持,使用JSON文件存储数据,特别适合短期活动、临时群组等场景。 核心特点无数据库依赖 使用JSON文件存储所有数据 简化部署,无需配置数据库环境 安全验证 后台管理密码采用加密验证 保障管理界面安全 响应式设计 自动适配移动设备和PC端 提供良好的用户体验 自动过期机制 活码默认7天后自动失效 适合临时性活动需求 易用性与扩展性 代码结构简单,新手友好 支持二次开发,可轻松添加数据库支持 界面简洁,方便自定义修改 适用场景短期营销活动 临时群组邀请 限时资源分享 需要动态更新二维码内容的场景 技术优势部署简单,只需PHP环境 源码开放,可自由定制 轻量级,资源占用低 该系统为开发者提供了一个快速搭建动态二维码管理平台的解决方案,特别适合需要快速上线临时性活动的场景。 全新轻量级PHP简约活码管理系统.zip
-
Invision Community 5 繁體中文包(兼容全IPS版本) 5.0.10
讓您的社群平台說繁體中文在當今的數位時代,一個強大的線上社群平台對於企業、組織甚至是個人來說,已經成為不可或缺的工具。Invision Community 5 繁體中文包 5.0.6 的推出,為繁體中文用戶提供了一個無縫且高品質的本地化體驗,讓您在管理或參與社群時更加得心應手。 繁體中文包的特色完整翻譯Invision Community 5 繁體中文包 5.0.6 提供了平台所有核心功能和模組的完整翻譯,從系統訊息、後台管理到用戶介面,每一個元素都經過精心翻譯,確保您在使用過程中不會遇到任何語言障礙。 高品質本地化我們深知繁體中文用戶的需求,因此在翻譯過程中特別注重品質,力求讓每一個詞彙和句子都符合繁體中文的表達習慣,提升您的閱讀和使用體驗。 兼容性此版本的繁體中文包與 Invision Community 5.0.5 版本完全兼容,不會影響系統的穩定性和功能運行。您可以放心使用,享受無縫的升級體驗。 持續更新隨著 Invision Community 平台的不斷更新,我們也會定期維護繁體中文包,確保所有新功能都能及時獲得繁體中文翻譯,讓您的社群平台始終保持最新狀態。 安裝前的準備在安裝繁體中文包之前,請確保您的伺服器已經支持繁體中文環境。如果您的伺服器尚未安裝繁體中文包,即使您上傳了語言包,也可能無法顯示繁體中文選項。以下是 Debian 系統安裝繁體中文包的詳細步驟,其他 Linux 發行版也可以參考類似的操作。 檢查是否已安裝繁體中文包bash 复制 locale -a | grep TW locale -a | grep HK如果沒有顯示 _zh_TW.UTF-8 或 _zh_HK.UTF-8 等相關語言包,則需要進行安裝。 安裝繁體中文包bash 复制 sudo apt-get install locales dpkg-reconfigure locales進入配置畫面後,選擇以下語言: _zh_TW.UTF-8 _zh_HK.UTF-8 最後,指定預設語言為 zh_TW.UTF-8 或 zh_HK.UTF-8,完成配置並重新啟動伺服器。 下載與安裝官方下載連結Invision Community 5 繁體中文包 5.0.6 官方客戶區下載連結(需登錄客戶區) 檔案大小:2.1 MB SHA-256 校驗值:b3d2e1a0… 安裝步驟上傳語言包:將下載的繁體中文包上傳至伺服器的 /applications/core/interface/language/ 目錄。 後台導入:登入 Invision Community 後台管理介面,導航至 Languages → Import,選擇上傳的 zh_TW_5.0.6.xml 或 zh_HK_5.0.6.xml 檔案。 設置預設語言:導入完成後,在 Languages 頁面將繁體中文設置為預設語言。 Invision Community 5 的核心功能現代化的用戶介面Invision Community 5 提供了一個簡潔、現代且響應式的用戶介面,無論是在桌面端還是行動端,都能提供流暢的瀏覽體驗。此外,它還支持深色模式,讓用戶在夜間瀏覽時更加舒適。 強大的論壇功能作為一個成熟的社群管理系統,Invision Community 5 提供了先進的論壇功能,包括話題和帖子管理、標籤和分類、權限管理以及主題自定義等。這些功能讓用戶可以輕鬆地進行討論和互動。 內容管理和創建工具用戶可以在平台上創建並分享多種類型的內容,如博客文章、文章和資源庫、事件和日曆等。這些工具不僅豐富了社群的內容,也提升了用戶的參與度。 社交互動和通知Invision Community 5 強調社交互動功能,提供了私信和消息系統、通知和提醒以及成員互動等功能。這些功能讓用戶可以輕鬆地與其他成員進行交流和互動。 強大的後台管理Invision Community 5 提供了一個功能豐富且直觀的後台管理介面,管理員可以輕鬆管理用戶和群組、內容審核和批准以及進行詳細的分析和統計。 高度定制化和擴展Invision Community 5 支持廣泛的插件和主題,開發者可以根據需求進行功能擴展和介面定制,甚至可以創建自定義應用和模塊,集成第三方服務。 電商功能對於需要電商功能的社群,Invision Community 5 提供了內置的商店系統,支持商家在平台上銷售產品、數位內容或服務,並提供訂單管理和支付集成等功能。 安全性和性能優化Invision Community 5 注重平台的安全性和性能,提供多種安全功能,包括 SSL 加密、防垃圾郵件和防濫用措施,以及通過緩存和數據優化技術提升系統響應速度和穩定性。 社群支持和行動端應用Invision Community 5 提供了完善的社群支持功能,用戶可以通過幫助中心、論壇和客服系統獲得幫助。此外,它還提供了行動端應用,讓用戶可以隨時隨地參與社群互動。 集成和 APIInvision Community 5 提供強大的 API 支持,方便與外部應用、平台和服務進行集成,提升平台的互操作性。 常見問題 FAQQ1:Invision Community 5 繁體中文包收費嗎?A:Invision Community 5 繁體中文包 5.0.6 是官方提供的正版資源,部分渠道可能會收取少量費用以支持翻譯和維護工作。 Q2:安裝語言包後,網站顯示亂碼怎麼辦?A:請檢查伺服器是否正確安裝了繁體中文語言環境(如 _zh_TW.UTF-8 或 _zh_HK.UTF-8)。如果未安裝,請按照上述步驟安裝並重新啟動伺服器。 繁體中文 5.0.10.xml
-
XenForo虎皮椒支付插件(支持微信支付宝) 兼容版本:2.1-2.2
之前在cnxf买的,给大家分享一下吧。目前只支持2.1和2.2。在当今数字化时代,便捷的支付方式已经成为互联网服务不可或缺的一部分。对于运行XenForo论坛的站长来说,为用户提供安全、高效的支付体验是提升论坛运营效率和用户体验的关键。XenForo虎皮椒支付插件正是为此而生,它为您的论坛带来了强大的支付功能,支持微信支付和支付宝,满足了国内用户最常用的支付需求。 一、插件简介XenForo虎皮椒支付插件是一款专为XenForo论坛开发的支付解决方案。它通过集成微信支付和支付宝两大主流支付平台,为论坛的付费内容、会员服务、虚拟商品交易等提供了安全、便捷的支付通道。无论是用户购买论坛会员、订阅付费帖子,还是参与付费活动,都可以通过熟悉的微信支付或支付宝轻松完成。 二、功能特点1. 多支付方式支持微信支付:用户可以通过微信扫码支付,无需跳转页面,支付过程简单快捷。 支付宝支付:支持支付宝扫码支付,同样操作简便,支付安全有保障。 2. 安全可靠插件采用加密传输技术,确保支付信息在传输过程中的安全。 与微信支付和支付宝官方接口无缝对接,符合支付行业安全标准。 3. 易于集成插件安装简单,只需按照说明进行操作,即可快速完成安装和配置。 提供详细的文档和技术支持,帮助您轻松集成到XenForo论坛中。 4. 用户友好用户在支付过程中无需离开论坛页面,支付完成后可立即返回,用户体验流畅。 支持多种支付场景,如会员充值、付费帖子、虚拟商品购买等。 三、安装步骤1. 下载插件可以在后台安装,也可以在面板上传安装。 2. 下载插件在购买页面下载插件文件包。 3. 安装插件登录您的XenForo论坛后台。 在“附加组件”管理页面中,上传并安装下载的插件文件包。 按照提示完成安装过程。 4. 配置支付接口在插件设置页面中,输入微信支付和支付宝的商户信息(如商户号、密钥等)。 根据您的需求配置支付场景和相关参数。 5. 测试支付功能在论坛中创建一个付费内容或会员服务,测试支付功能是否正常。 确保支付流程顺畅,支付成功后用户能够正确获得相应的权限或内容。 四、使用场景1. 会员充值用户可以通过虎皮椒支付插件为论坛会员账户充值,享受会员专属功能和服务。 2. 付费帖子论坛管理员可以设置某些帖子为付费阅读,用户支付一定金额后才能查看帖子内容。 3. 虚拟商品交易论坛可以销售虚拟商品,如虚拟道具、积分等,用户通过支付插件完成购买。 4. 活动报名对于需要付费的线下活动或线上活动,用户可以通过支付插件完成报名流程。 五、技术支持如果您在安装或使用过程中遇到任何问题,可以联系插件开发者或访问XenForo社区寻求帮助。开发者通常会提供专业的技术支持,确保您能够顺利使用插件。 六、结语XenForo虎皮椒支付插件为您的论坛带来了强大的支付功能,让您的运营更加高效,用户体验更加出色。通过支持微信支付和支付宝,它满足了国内用户的主要支付需求,为您的论坛发展提供了有力支持。立即购买并安装虎皮椒支付插件,开启您的论坛便捷支付时代! 虎皮椒支付等1个文件.rar
-
生产管理系统v4.0.4 源码下载
下载Producttify-生产管理系统空免费 Productify是一个生产管理系统,旨在简化生产或制造过程。Produtify是轻量级的,安全的,快速的,基于Laravel。该系统可用于任何制造公司,如服装厂,食品厂,医药行业等,该系统可以有一个非常有用的和有价值的资产,任何制造公司 codecanyon-productifyproduction-management-system.zip
-
Chrome对PDF中图片自动OCR
23.26 Chrome对PDF中图片自动OCR Q: 从某个版本Chrome开始,会对PDF中图片自动OCR,滚动PDF时提示"Extracting textfrom PDF"。这个功能有点吓人,OCR是上传到服务器进行的还是本地离线进行的,能否避免敏感PDF泄密?OCR造成PDF滚动不畅,影响观感。如何开关此功能? A: 2025-07-30 此功能有积极的一面。比如用Chrome查看图片扫描版电子书时,可从图片中直接复制文字出来,不必截屏后用其他OCR工具(比如微信PC版)析取文字。 暂时注意到只能对PDF进行OCR,不知能否对图片文件直接OCR,我未试成功。 此功能控制开关如下 chrome://flags/ Make the text in PDF images interactable Default Enabled Disabled 或 chrome://flags/#pdf-searchify此处说明如下 Enables a feature which runs OCR on PDF images and makes the recognized text searchable and editable. - Mac, Windows, Linux, ChromeOS 不知"editable"何解? 参看 https://source.chromium.org/chromium/chromium/src/+/main:services/screen_ai/README.md好像前述OCR功能用到"Chrome Screen AI Library",据说是本地离线进行的,未细究。不放心时,改成"Disabled"即可。