Releases: yakoye/YeImageViewer
Releases · yakoye/YeImageViewer
Release list
YeImageViewer v1.36.30
本版修复重命名对话框无法输入中文的问题。
修复
- 修复重命名对话框无法输入中文。程序启动时调用
ImmDisableIME关闭输入法,本意是避免输入法吞掉看图窗口的单键快捷键,但这个开关作用于整个线程且一旦调用就无法撤销,进程从此不会加载任何输入法(搜狗、微信输入法、小狼毫、PiInput 一概失效),后来新增的重命名输入框也就打不出中文。现改为在主窗口、设置窗口和打印窗口上按窗口摘除输入法上下文,重命名对话框保留默认上下文:快捷键行为与之前一致,中文可以正常输入。
下载
推荐下载 setup.exe;完整 .7z 包保留便携解压方式。两种包均包含全部现有格式支持且小于 25 MiB。
YeImageViewer v1.36.29
本版修复一处会被真实文件触发的越界读,并让导出动图帧不再受关闭程序影响。
修复
- 修复绘制文本时的越界读。此前解析 UTF-8 只检查了首字节位置,三字节和四字节字符如果被截断在字符串末尾,会读到文本缓冲之外。图片信息里的 EXIF 文本取自图片文件本身,显示时又可能被裁剪,属于会真实触发的场景;现在遇到不完整的字符会显示为问号,不再越界。
- 导出动图逐帧时,关闭程序会等待后台写文件完成,避免正在写入的 PNG 被截断成半个文件。等待设有 10 秒上限,不会拖住关闭流程。
- 同步内部版本号常量,此前它未随版本更新。该常量目前没有被任何逻辑使用,不影响既有功能。
下载
推荐下载 setup.exe;完整 .7z 包保留便携解压方式。两种包均包含全部现有格式支持且小于 25 MiB。
YeImageViewer v1.36.28
本版以解码安全加固为主,并改进了图片加载的等待与切换体验。
稳定性
- 加固 ICO 图标解码的边界检查。此前解析 DIB 时只信任文件内记录的头部长度,头部、位域掩码、调色板、像素行和 AND 掩码都没有对照条目实际长度校验,损坏或被构造的 ICO 文件可能读到数据之外并导致崩溃。同时限制调色板数量、位深和图像尺寸的取值范围,避免异常文件触发超大内存分配。
- 修复 RAW 解码在部分机型上的越界读。此前直接把解码结果按 8 位三通道位图解释,单色机型或 16 位输出的实际数据小于预期尺寸,现在会先确认数据布局再构造图像。
- 修复放大绘制三通道图像时多读 1 字节的问题,取值结果与之前一致。
- 删除图片后同步清除该文件的缓存,避免之后出现的同名文件显示到已经过期的内容。
体验与性能
- 改进图片加载的等待方式。此前主线程按固定间隔轮询解码结果,受系统计时器精度限制,即使解码已经完成也要等到下一轮才显示;现在改为解码完成后立即唤醒。
- 快速翻页时优先解码当前要显示的图片。此前预读队列按先进先出处理,连续翻页会让正在等待的图片排到队尾,等待过久时会显示加载失败。
- 画面呈现改用两张暂存纹理轮换,避免每帧等待 GPU 读取完成;未旋转未翻转时使用特化的绘制路径,减少逐像素的坐标换算开销。
下载
推荐下载 setup.exe;完整 .7z 包保留便携解压方式。两种包均包含全部现有格式支持且小于 25 MiB。
YeImageViewer v1.36.27
本次在 v1.36.27 基础上补入一批崩溃修复,并新增外部编辑器配置与图片重命名,版本号保持 1.36.27。
崩溃修复
- 修复实况照片相关的帧索引越界崩溃。帧数上界此前按图像类型计算,实况图播放完毕会切成静态图并把上界重算为 1,之后切回动图时该值残留,单帧实况照片会访问越界帧;现改为始终按实际帧数计算,同时修正了切回动图后只能播放一帧的问题。
- 修复图像宽高为 0 时初始化缩放比例的整数除零崩溃。
- 解码等待超时后不再把空指针交给绘制流程,统一回落到错误提示图,消除切换图片、删除图片和重载缓存等路径上的空指针崩溃。
- 修复放大绘制时按列宽而非行距取像素,在带行填充的图像上会取错位置的问题;同时避免超大图上的整数索引溢出。
新增
- 外部编辑器配置:可自定义最多十个外部程序及其显示名称,路径与名称持久化在独立 INI 文件中,支持含空格和 Unicode 的路径与参数。
- 当前图片重命名:F2 与右键菜单均可重命名,校验空名、Windows 非法字符、结尾点号、保留设备名和超长文件名,并保持原有扩展名。
下载
推荐下载 setup.exe;完整 .7z 包保留便携解压方式。两种包均包含全部现有格式支持且小于 25 MiB。
YeImageViewer v1.36.26
主要更新
- 完整版继续保留全部静态图、动图、RAW、LivePhoto/MotionPhoto、视频及 PSD 等专业格式,不拆分现有稳定解码路径。
- 移除主程序内重复携带的约 14.3 MiB 中文字体副本;界面继续使用 Windows 原生 ClearType,SVG 与备用像素文字按需使用 Windows 10/11 自带字体。
- SVG 字体初始化改为线程安全的一次性加载;系统字体不可用时安全降级,不影响普通图片解码和程序启动。
- 新增完整运行时 LZMA2 打包与 25 MiB 体积门禁。
下载与安装
推荐下载 YeImageViewer-v1.36.26-win-x64-full-self-extract.exe:
- 下载大小:24.284 MiB
- 无需预装 7-Zip,双击后选择目录解压
- 解压完成后运行目录中的
installLocal.ps1 - 自解压程序只负责解压,不会静默安装或修改注册表
也可下载可审计的原始压缩包 YeImageViewer-v1.36.26-win-x64-full.7z(24.079 MiB)。安装后两种下载得到的是同一套完整功能文件,不需要再下载格式组件。
验证
- Release x64 单元回归:120 项通过,0 失败。
- 真实格式解码语料:44 种通过。
- 沉浸/退回、重命名、缩放、设置、多屏、长图、HDR、复杂中文 SVG、MotionPhoto 与崩溃夹具真实窗口回归通过。
- 大 JPG 与复杂 SVG 重复启动/解码对照没有性能回退。
- GitHub Release 独立回下载、SHA-256 与压缩包完整性验证通过。
- 自解压程序独立解出 9 个文件,主程序和缩略图组件与正式构建逐字节一致。
- 构建 commit:
1cd53f85496067904a1d1c7a884dbdf4604d4829。
SHA-256
- 自解压完整包:
81028ED1747FDC8C6396CDB496875C55E42DBA3507961B729C5321ED7076EA18 - 7z 完整包:
73670376FD0966E7A8D277D10F58BD55083B9A163E55F115DAFE6FC637E1D47E
YeImageViewer v1.36.25
主要更新
- 重做普通模式与沉浸模式的图片信息卡:12 像素清晰字体、长字段完整换行、内容区域滚动、复制与关闭交互独立。
- 重做代码化快速开始页,并整理“关于”页的作者、构建时间、Commit ID 与项目入口布局。
- 统一底部工具栏图标、缩放百分比与加减号视觉规格;百分比支持直接输入 1%–10000%。
- 优化横竖图首次打开:常见比例完整显示;超过 16:9 的超长竖图从顶部浏览,超宽横图从中部浏览。
- 保留平滑缩放、当前图片退回窗口、多屏启动、F2 重命名、沉浸交互和全部既有格式支持。
安装
下载并解压 YeImageViewer-v1.36.25-win-x64.zip,在解压目录运行 installLocal.ps1。也可以直接运行 x64/Release/YeImageViewer.exe 作为便携版。
验证
- Release x64 完整回归:119 项通过,0 失败。
- 真实格式解码语料:44 种通过。
- 真实窗口交互、沉浸/退回、重命名、缩放、设置、多屏、长图、HDR、SVG 与崩溃夹具均通过。
- 构建 commit:
94b28ca05ead6c953ef5fe8963dfc31f584f6f49。 - ZIP 大小:53.33 MiB;SHA-256:
FB332A489E8353FDB46B686811760126B5132F0DD0116E9A99DC3FCC97F36AE5。
YeImageViewer v1.36.21
主要更新
- 缩放改为 220 ms 平滑起止动画,连续滚轮从当前中间帧无缝续接,并同步显示器刷新节奏。
- 滚轮、工具栏加减号和快捷键缩放时,左下角显示实时倍率并自动淡出。
- 底部工具栏图标增大 2 像素并加粗;普通模式图片信息卡改为 14 像素紧凑排版。
- 从资源管理器打开图片时,优先在鼠标当前所在显示器启动;真实窗口回归固定在主屏,避免打断副屏工作。
- F2 或右键重命名后,点击图片或背景都会取消并关闭对话框,且不会触发底层看图操作。
- 竖向长图首次打开时从顶部开始显示,并保留向下拖动浏览。
安装
下载并解压 YeImageViewer-v1.36.21-win-x64.zip,在解压目录运行 installLocal.ps1。也可以直接运行 x64/Release/YeImageViewer.exe 作为便携版。
验证
- Release x64 完整回归:106 项通过,0 失败。
- 真实格式解码语料:44 种通过。
- 真实窗口交互、崩溃夹具、HDR、SVG、重命名、多屏与长图流程均通过。
- 构建 commit:
dbbdbe88b564d66c216f9b7ddf20d5bab5a088fc。