YeImageViewer v1.36.28
本版以解码安全加固为主,并改进了图片加载的等待与切换体验。
稳定性
- 加固 ICO 图标解码的边界检查。此前解析 DIB 时只信任文件内记录的头部长度,头部、位域掩码、调色板、像素行和 AND 掩码都没有对照条目实际长度校验,损坏或被构造的 ICO 文件可能读到数据之外并导致崩溃。同时限制调色板数量、位深和图像尺寸的取值范围,避免异常文件触发超大内存分配。
- 修复 RAW 解码在部分机型上的越界读。此前直接把解码结果按 8 位三通道位图解释,单色机型或 16 位输出的实际数据小于预期尺寸,现在会先确认数据布局再构造图像。
- 修复放大绘制三通道图像时多读 1 字节的问题,取值结果与之前一致。
- 删除图片后同步清除该文件的缓存,避免之后出现的同名文件显示到已经过期的内容。
体验与性能
- 改进图片加载的等待方式。此前主线程按固定间隔轮询解码结果,受系统计时器精度限制,即使解码已经完成也要等到下一轮才显示;现在改为解码完成后立即唤醒。
- 快速翻页时优先解码当前要显示的图片。此前预读队列按先进先出处理,连续翻页会让正在等待的图片排到队尾,等待过久时会显示加载失败。
- 画面呈现改用两张暂存纹理轮换,避免每帧等待 GPU 读取完成;未旋转未翻转时使用特化的绘制路径,减少逐像素的坐标换算开销。
下载
推荐下载 setup.exe;完整 .7z 包保留便携解压方式。两种包均包含全部现有格式支持且小于 25 MiB。