An open API service indexing awesome lists of open source software.

https://github.com/fantasywoc/vimag

轻量图像查看器
https://github.com/fantasywoc/vimag

cpp cpp17 cross-platform glew glfw3 imageviewer lightweight nanovg opengl xmake

Last synced: 6 months ago
JSON representation

轻量图像查看器

Awesome Lists containing this project

README

          

# VIMAG 轻量图片查看工具


VIMAG


完全开源免费的轻量图像查看软件


Author
languages-count
languages-top
last-commit

# xmake编译项目
## Debug模式
```xmake config -m debug```

## Release模式
```xmake config -m release```

## 清理构建
```xmake clean```

## 编译库配置
```xmake g --pkg_searchdirs=./src/thrity_party/``` #本地库文件搜索路径
## 编译
```
xmake
xmake run VIMAG 或者 xmake run VIMAG image-path/dist
```

# VIMAG

## Vimag格式支持
- 支持多种图像格式(JPG/JPEG/PNG/BMP/GIF/TGA/HDR/PSD)
## 快捷键
[鼠标]/[键盘]
- 滚轮:缩放
- 左键拖拽:移动
- 左键双击:重置移动和缩放
- 左键单击+滚轮||左右方向键:切换图片
- 中键||"F":窗口最大化/最小化
- 右键单击:打开设置面板
- 鼠标移入窗口上边缘:显示标题栏

- **预览**:选中图片后,空格预览/关闭预览图像(仅支持windows)(需要启用Vimag_hook)
[windows Vimag_hook]
windows 运行dist/Vimag_hook 可以启用预览钩子,
**Vimag_hook需要和Vimag放在同一目录下**
资源浏览器里面选中所支持的图像格式点击**空格**可以预览图像
- 托盘可以配置
- 启用/禁止
- 开始/暂停
- 开机自启
- 开启/关闭控制台(仅供简单调试使用)

## 项目结构

```
UI/
├── src/
│ ├── animation # 动画类
│ ├── component # 组件类
│ ├── TinyEXIF # EXIF
│ ├── third_party # 库
│ ├── utils # 工具函数
│ ├── font # 字体类
│ ├── icon # 图像资源
│ ├── UIWindow.h # UIWindow 类头文件
│ ├── UIWindow.cpp # UIWindow 类实现
│ └── Vimag.cpp # Vimag 程序
├── xmake.lua # 构建配置
└── README.md # 项目说明
```

## 依赖库

- **GLFW 3.3.8**: 窗口管理和输入处理
- **GLEW 1.13.0**: OpenGL 扩展加载
- **NanoVG**: 2D 矢量图形渲染

# UI 框架

基于 GLFW、OpenGL 和 NanoVG 开发的 UI 窗口项目,。
## 特性

- ✅ 跨平台支持(Windows/Linux)
- ✅ Opengl渲染
- ✅ 透明窗口支持
- ✅ 事件回调系统
- ✅ 自动资源管理
- ✅ NanoVG 集成

## UIWindow 类的主要功能

### 1. 窗口管理
- 创建、初始化、清理GLFW窗口
- 窗口生命周期管理
- 自动资源清理

### 2. 渲染上下文
- 管理OpenGL和NanoVG上下文
- 自动初始化GLEW
- 提供统一的渲染环境

### 3. 事件处理
- 封装鼠标、键盘事件处理
- 简化输入状态查询
- 支持光标位置获取

### 4. 渲染循环
- 提供便捷的渲染开始/结束方法
- 自动处理帧缓冲区管理
- 简化渲染流程

### 5. 回调系统
- 支持自定义事件回调函数
- 键盘、鼠标、窗口大小变化回调
- 类型安全的回调接口

### 6. 窗口属性
- 透明度、大小等属性设置
- 透明帧缓冲区支持
- 灵活的窗口配置选项

# xmake 代码提示和补全配置
## clangd 配置xmake 代码提示和补全
## clangd安装
(以 VSCode 为例)安装 ​**vscode-clangd**​ 插件(在扩展商店搜索安装)
然后下载安装⏬```https://github.com/llvm/llvm-project/releases``` ,bin路径添加到环境变量
##配置xmake(​核心配置步骤​)
1. 生成 compile_commands.json(编译数据库)​​

自动更新​:在 xmake.lua 中添加规则:
```lua
add_rules("plugin.compile_commands.autoupdate", { outputdir = ".vscode" })
```
手动生成​:在项目根目录执行:
```bash
xmake project -k compile_commands
```
默认生成在项目根目录,可通过 --outputdir=.vscode 指定输出到 .vscode 目录。
每次编译时自动更新该文件。
2. 配置 VS Code 的 Clangd 插件​
在 .vscode/settings.json 中指定编译数据库路径:

```json
{
"clangd.arguments": [
"--compile-commands-dir=${workspaceFolder}/.vscode", // 指向 compile_commands.json 所在目录
"--header-insertion=never", // 禁止自动插入头文件
"--completion-style=detailed" // 启用详细补全提示
]
}
```
若文件在根目录,则路径改为 ${workspaceFolder}

## 📊 动态统计
[![Stars](https://img.shields.io/github/stars/fantasywoc/Vimag?label=Stars&color=yellow&logo=github)](https://github.com/fantasywoc/Vimag/stargazers)
[![Forks](https://img.shields.io/github/forks/fantasywoc/Vimag?label=Forks&color=blue&logo=github)](https://github.com/fantasywoc/Vimag/network/members)
[![Downloads](https://img.shields.io/github/downloads/fantasywoc/Vimag/total?label=Downloads)](https://github.com/fantasywoc/Vimag/releases)
## ⭐ 星标历史 Star History





Star History Chart

## 许可证

本项目采用开源许可证,具体请查看 LICENSE 文件。