Absolute Image Transfer
unlistedby KahoTAT
Locally transfers images with absolute paths into the vault and converts them to internal links.
Absolute Image Transfer
Obsidian desktop plugin that transfers externally-linked images into your vault and renames garbled image files — all through right-click or command palette.
What this plugin does
1. Transfer external images into the vault
Converts absolute-path image links like file:///D:\Images\photo.png or C:\Users\...\pic.jpg into standard Obsidian ![[...]] wikilinks. The image file is copied into your vault (respecting your attachment folder settings) and the link is updated automatically.
Example — before:

Example — after:
![[Pasted image 20260420123045.png|350]]
2. Rename garbled images to a clean preset format
Finds images with messy filenames (e.g., Q)\TN\Q)TNF]S%MRO@AI1(F[I]OYC.gif, %01...png, 123.456.jpg) and renames them to a configurable clean format. Renames the physical file AND updates all referencing notes across the vault.
Default preset: Pasted image {YYYY}{MM}{DD}{HH}{mm}{ss} → Pasted image 20260420123045.png
Customize the format in settings using placeholders: {YYYY}, {MM}, {DD}, {HH}, {mm}, {ss}.
3. Fix QQ/WeChat chat log formatting
Reformats exported chat logs from messy single-line timestamps into clean, indented format:
Example — before:
张三 2024/1/5 14:30:25你好,文件收到了吗
Example — after:
张三: 2024/01/05 14:30:25
你好,文件收到了吗
Idempotent — running it multiple times on the same text won't produce duplicate newlines or extra whitespace.
How to use
| Method | Action |
|---|---|
Right-click a .md file | Convert / rename / fix chat logs for that note |
| Right-click a folder | Batch process all notes in that folder |
Command palette (Ctrl+P) | Convert images in current note or entire vault; rename all images vault-wide |
Settings
- Attachment location — where transferred images are stored (system default, vault root, current folder, subfolder, or custom path)
- Image naming preset — format for renamed images, supports
{YYYY}{MM}{DD}{HH}{mm}{ss} - Link format after rename — use full path (
folder/image.png) or filename only (image.png)
Supported formats
png jpg jpeg gif bmp webp heic (case-insensitive)
Important
Do not use Ctrl+Z after renaming images. This plugin renames physical files on disk. Undoing in the editor reverts the text link but not the filename — causing broken images.
Back up your vault before bulk operations.
Installation
- Download
main.js,manifest.json, andstyles.cssfrom Releases - Place them in
.obsidian/plugins/obsidian-absolute-image-transfer/ - Enable the plugin in Settings → Community Plugins
Changelog
v1.1.2
- Progress indicator uses the built-in status bar (not a floating overlay), updating per-image during single-file operations
- Notice suppression now covers all operation types, including single-file right-click actions
- MutationObserver backup for notice suppression to catch edge cases where CSS alone is insufficient
v1.1.1
- CSS class
suppress-noticesadded todocument.bodyduring batch operations, hiding system notification popups viastyles.css - Status bar progress for vault-wide and folder-wide operations with descriptive labels (e.g.
📷 图片重命名: 33/100)
v1.1.0
- Batch operation notice suppression via CSS
- Real-time progress labels in the status bar during transfer and rename operations
- Garbled image detection improvements: pure digit+dot filenames now recognized as auto-generated
v1.0.9
- Non-greedy wikilink regex to handle filenames with embedded
]brackets - Three-layer garbled detection: special chars, URL-encoded residues, auto-generated patterns
resolveImageLink()shared resolver withgetFirstLinkpathDestfallback to global file search
v1.0.8
- Vault-wide basename deduplication using pre-scanned
Map<basename, vaultPath> - Force rename mode: renames all images including those already matching the preset format
- Operation mutex lock (
isRenaming) to prevent concurrent operations
v1.0.6
- Link format setting: choose between full path or filename-only wikilinks after rename
- Images already matching the preset naming format are automatically skipped
- Batch progress shown in status bar instead of repeated notification popups
v1.0.5
- Custom image naming presets with
{YYYY}{MM}{DD}{HH}{mm}{ss}placeholders - Right-click menu for renaming all images in a single file, folder, or entire vault
- Batch link format correction after all renames complete
v1.0.4
- Chat log formatting for QQ/WeChat exported text
- WebP and HEIC format support
v1.0.3
- Image size syntax preservation (
![|350]) after conversion - Hardened path resolution engine for special characters and URL-encoded paths
v1.0.2
- Respects Obsidian system attachment folder settings
- Auto-creates nested attachment directories
v1.0.1
- Garbled image detection and renaming for already-imported images
- Vault-wide link auto-update via Obsidian's
fileManager.renameFileAPI
v1.0.0
- Initial release: external image transfer with absolute path resolution
License
MIT
中文说明
将笔记中的外部绝对路径图片搬运到 Obsidian 仓库内,并转换为 ![[...]] 双链。同时提供乱码图片重命名、QQ/微信聊天记录排版修复功能。
功能
1. 外部图片转入仓库
把 file:///D:\图片\photo.png 或 C:\Users\...\pic.jpg 这类绝对路径图片复制到仓库的附件目录,并将链接替换为 ![[Pasted image 20260420123045.png]]。图片存放位置遵循你的 Obsidian 附件设置。
2. 乱码图片重命名为预设格式
识别文件名中带特殊字符(\、%、[]、() 等)、URL 编码残留、纯数字+点号等自动生成命名的图片,统一重命名为干净格式。物理文件与全库引用链接同步更新。
默认格式: Pasted image {YYYY}{MM}{DD}{HH}{mm}{ss}
可在设置中自定义占位符组合。
3. 修复 QQ/微信聊天记录排版
将导出的聊天文本从混乱的单行时间戳格式,转换为带缩进的清晰排版。严格幂等,重复执行不会产生多余空行。
使用方式
| 方式 | 操作 |
|---|---|
右键 .md 文件 | 转换、重命名、修复聊天记录 |
| 右键文件夹 | 批量处理文件夹下所有笔记 |
命令面板 (Ctrl+P) | 转换当前笔记 / 全库转换 / 全库重命名 |
支持的图片格式
png jpg jpeg gif bmp webp heic
注意事项
重命名图片后请勿使用 Ctrl+Z 撤销。 插件会修改磁盘上的物理文件名,编辑器的撤销只能回退文本中的链接文字,无法还原文件名,会导致图片无法显示。
批量操作前建议备份仓库。
更新日志
v1.1.2
- 进度指示改用 Obsidian 自带状态栏显示,单文件操作时按图片数量逐张更新进度
- 通知屏蔽覆盖所有操作类型,包括单文件右键操作
- 新增 MutationObserver 作为通知屏蔽的兜底方案
v1.1.1
- 批量操作时向
document.body添加suppress-noticesCSS 类,通过styles.css隐藏系统通知弹窗 - 全库和文件夹批量操作在状态栏显示实时进度
v1.1.0
- 批量操作通知屏蔽(CSS 方案)
- 状态栏实时进度文字
- 乱码检测改进:纯数字+点号文件名被识别为自动生成
v1.0.9
- Wikilink 正则改用非贪婪匹配,处理文件名中嵌套
]的情况 - 三层乱码检测:特殊字符、URL 编码残留、自动生成模式
resolveImageLink()统一文件解析,原生 API 失败时回退为全局查找
v1.0.8
- 全库 basename 去重,预构建
Map<basename, vaultPath>映射表 - 强制重命名模式:对已符合预设格式的图片也重新命名
- 操作互斥锁,防止并发操作冲突
v1.0.6
- 链接格式设置:重命名后可选完整路径或仅文件名
- 已符合预设命名的图片自动跳过
- 批量进度从频繁弹窗改为状态栏显示
v1.0.5
- 自定义图片命名预设,支持
{YYYY}{MM}{DD}{HH}{mm}{ss}占位符 - 右键菜单支持单文件 / 文件夹 / 全库级别的图片重命名
- 全部重命名完成后统一修正链接格式
v1.0.4
- QQ/微信聊天记录排版修复
- 支持 WebP 和 HEIC 格式
v1.0.3
- 转换后保留图片尺寸语法(
![|350]) - 强化路径解析引擎,处理特殊字符和 URL 编码路径
v1.0.2
- 遵循 Obsidian 系统附件文件夹设置
- 自动创建嵌套附件目录
v1.0.1
- 库内乱码图片检测与重命名
- 通过
fileManager.renameFileAPI 自动更新全库引用
v1.0.0
- 首次发布:外部绝对路径图片转入仓库
安装
- 从 Releases 下载
main.js、manifest.json、styles.css - 放入
.obsidian/plugins/obsidian-absolute-image-transfer/ - 在设置 → 第三方插件中启用
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.