跳到主内容
UniKit

代码转图片

把代码片段渲染成带语法高亮观感的 PNG:可选深色/浅色主题、字号、行号、内边距、圆角、阴影与 macOS 风格窗口标题栏。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

外观设置
主题
1.5
24 px

所有渲染都在浏览器本地完成,代码不会上传。

预览

图片信息

这个工具能做什么

  • 写技术分享或发朋友圈时,把代码变成一张带标题栏的深色截图,比直接粘贴纯文本更好读。
  • 贴 issue 或工单时附上图片,避免平台把代码里的特殊符号吃掉或自动换行。
  • 需要浅色背景放进白底文档时切到浅色主题,字号、内边距、行号、圆角都能调,不用再去设计软件里二次处理。
  • 支持十几种语言的简化高亮(关键字、字符串、注释、数字、函数名五类着色),贴 JS、Python、SQL、Go 都能看。

示例

输入

const greet = (name) => `Hello, ${name}!`;
console.log(greet("UniKit"));(字体 16px、行高 1.5、内边距 24、显示行号、带窗口标题栏)

输出

画布尺寸 510 × 174 像素(内容区 478 × 142 加四周 16px 阴影留白),2 行,行高 24px,行号栏 26px,标题栏 46px;下载文件名沿用 snippet.png

切到浅色主题或关闭行号 / 标题栏,画布尺寸会随之变化。导出走的是 Canvas 的 toBlob,因此最终图片由浏览器绘制,像素结果和这里的排版计算一一对应。

常见问题

这段代码会被上传吗?

不会。语法着色、排版计算和 PNG 导出全部在浏览器里完成,页面不发任何网络请求,粘贴的代码不会离开本机。

支持哪些语言?

内置十几种常见的语言定义:JavaScript、TypeScript、Python、Java、C、C++、C#、Go、Rust、PHP、Ruby、SQL、Bash、JSON、YAML、CSS、Kotlin、Swift,以及不高亮的纯文本。高亮是简化版 tokenizer,不会做完整的语法解析。

为什么某些关键字没有变色?

着色规则很朴素:只在关键字表里出现、且后面不是左括号的词才算关键字,带括号的标识符一律当函数名。所以自定义的宏、装饰器或语言新语法可能不被识别,看起来就是普通的白色文本。

图片尺寸是怎么算出来的?

宽度取最长一行的等宽近似宽度(CJK 按 1 em、其余按 0.6 em 估算)加两侧内边距和行号栏,高度是行数乘字号乘行高倍数加内边距;导出时四周再各留 16px 给阴影,所以实际画布比内容区各多 32px。

文件名填错了会怎样?

文件名不能为空,否则提示后不导出。输出时会把原扩展名替换成 .png,所以填 snippet.ts 会得到 snippet.png,填 snippet 也会补成 snippet.png。

关键词:code to image代码截图代码转图片syntax highlight语法高亮pngcarbon代码美化

同类工具