图片如何变成文件夹图标
每款皮肤都是一张图片:可能是你添加的,可能是 AI 模型画的,也可能来自社区皮肤包。FolderSkin 会用两种方式之一把它变成文件夹图标,而一张单独看很好看的图片,放到文件夹上也可能效果不佳。本页介绍 FolderSkin 如何判断用哪种方式、文件夹会对图片做什么,以及在把图片分享到皮肤包之前如何检查它(见 PACKS.md)。
如果你想让 AI 智能体代劳,.claude/skills/folderskin-skins/SKILL.md 会一步步引导 Claude Code 做出一个皮肤包。
图案还是成品文件夹
Section titled “图案还是成品文件夹”FolderSkin 会看图片周围是什么:
- 成品文件夹放在真正的透明背景上,或者纯品红
#FF00FF背景上。品红会被抠掉,图片会裁到文件夹的边缘,然后原样成为图标:等比缩放到适合图标的大小并居中,绝不裁切。用 PROMPTS.md 里的提示词,图像模型画出来的就是这种。 - 其他一切都算图案:照片、画作、花纹都是。FolderSkin 会把它包裹到自己的文件夹模板上,所以它和其他所有皮肤一样,有相同的页签、纸张和轮廓。
品红必须是纯 #FF00FF 或者非常接近它,所以在品红色纸上拍的产品照,或者一片艳粉色的晚霞,仍然会被当作图案处理。确切的规则见 ARCHITECTURE.md(英文)。本页余下的内容都是关于图案的。
合成器会把同一张图片按铺满方式缩放,分别放进 1024 × 1024 图标画布上的两个矩形里(相关常量见 crates/folderskin-core/src/geometry.rs):
- 后面板:带页签的那部分,纵向范围是 y 36.5 到 973.5。它的宽高比和 1024 × 958 的图片非常接近,所以这里会显示图片的完整高度,左右两侧各裁掉约 18 px(1.8%)。
- 前面板:盖住纸张的那一块,纵向范围是 y 160.5 到 973.5,圆角半径 55 px。它比图片更扁(宽高比更大),所以图片会按面板的宽度缩放,只保留中间约 87% 的高度:顶部大约裁掉 6%,底部也裁掉差不多同样多。
下面按 1024 × 958 图片的横向条带来说明(同样比例、不同尺寸的图片按比例换算即可)。条带之间有重叠,因为两块面板显示的是同一张图片中相互重叠的部分:后面板显示完整高度,前面板显示中间部分。
| 行(共 958 行) | 占高度的比例 | 最终落在哪里 |
|---|---|---|
| 0 – 62 | 顶部 6.5% | 页签里 |
| 62 – 127 | 接下来的 6.7% | 前面板上方、纸张旁边的那一条后面板 |
| 60 – 898 | 中间约 87% | 前面板,也就是大家真正会看的部分 |
| 898 – 958 | 底部 6.3% | 被裁掉 |
由此得出两条规则:
- 顶部 12% 不要放重要内容。这些行是页签和前面板上方那一细条。放在那里的人脸、地平线或标志,会被纸张切成两半。
- 主体放在中间。前面板会从顶部和底部各去掉约 60 px,而且在 1024 px 下四角有 55 px 的圆角,所以边角处的细节在小尺寸图标里反正也看不见。
平面和抽象的画作怎么处理都没问题,不用多想。主体明确的照片,则需要让主体落在中间那条带里。FolderSkin 总是让图案居中,所以如果主体偏上或偏下,请在添加图片或放进皮肤包之前,自己先裁好。
folderskin-tools guide 可以画出这些条带:
cargo run -p folderskin-tools -- guide --out /tmp/guide.png它会生成一张 1024 × 958 的模板,上面标出了页签、纸边、前面板,以及前面板会裁掉的行。在图片编辑器里把它作为一个图层叠在你的图片上即可。
render 会用和应用相同的代码,把任意图片画成应用会生成的文件夹,并告诉你它属于两类中的哪一类:
cargo run -p folderskin-tools -- render ~/Pictures/koi.webp --out /tmp/koi.png --size 512# wrote /tmp/koi.png (512×512): artwork on FolderSkin's folder分享图片之前,先看看结果。--focus x,y 可以移动图案的裁切位置,能快速看出换一种裁法会保留多少画面。不过应用本身总是围绕中心裁切,所以想要的裁切效果要直接做进图片里。render --solid RRGGBB 会用一种纯色画出模板,方便查看模板本身。
皮肤包里的图片
Section titled “皮肤包里的图片”皮肤包里的图片以无损方式分享,所以皮肤包看起来和你做的一模一样。各项限制见 PACKS.md:每边最多 1024 px(三个系统中最大的图标尺寸),最少 256 px,每张最大 1.5 MB,整个皮肤包最多 64 MB。应用和 packs make 会替你把每张图片缩小,并编码为无损 WebP:
| 图片 | 格式 | 原因 |
|---|---|---|
| 成品文件夹 | 无损 WebP,保留透明度 | 每个像素都和画出来时一样,连边缘也不例外,体积约为 PNG 的三分之二 |
| 图案:照片、画作、渐变、颗粒质感 | 无损 WebP | 没有色块和振铃伪影,一张细节丰富的 1024 px 图片约 800 KB |
| 以上任意一种,细节太多,在 1024 px 下超过 1.5 MB | 无损 WebP,先缩到 896 px,还不行再缩到 768 px | 宁可缩小也不弄糊,应用会告诉你是哪几张 |
如果手动编码,用 PNG 也可以,cwebp -lossless -z 9 也行。新皮肤包不接受 JPEG 和有损 WebP:社区服务会拒绝,packs check --require-lossless 也会拒绝。图案不需要保留透明度,因为文件夹的形状由模板提供。1024 × 958 的图案被裁掉的部分最少,不过任何尺寸都能用。
同一个皮肤包里的成品文件夹会统一成同一种形状,所以并排摆放时大小一致。packs make 和社区的拉取流程会按这些文件夹形状的中位数重绘它们,偏差太大的文件夹则交给人来决定(见 PACKS.md)。
只分享你自己做的、或者你有权分享的图片,并使用皮肤包可选的许可协议之一(见 PACKS.md)。其他任何图片,比如图库照片、壁纸、别人作品的截图,或者你没读过使用条款的模型生成结果,都请留在你自己的电脑上:拖进应用就能在本地使用,它们永远不会离开你的电脑。