一个命令行工具 scrscr
和一个库,它创建一个与给定屏幕截图尺寸相同的新图像,添加背景,缩小原始屏幕截图的尺寸,将其美观地放置,并在其旁边添加一个标题。
可以通过 Homebrew 轻松安装 scrscr
命令,或者通过克隆存储库并使用 Makefile,或者手动构建所有内容。
Tap 这个存储库
$ brew tap goeldner/formulae
安装包
$ brew install scrscr
如果您想使用 make
,则为此项目定义了一个 Makefile
。克隆存储库,进入该文件夹,然后执行以下命令以将 scrscr
命令安装到您的 /usr/local/bin
文件夹中
$ make clean install
您也可以手动构建和安装。克隆存储库,进入该文件夹,然后执行
$ swift build --configuration release
$ cp -f .build/release/scrscr /usr/local/bin/scrscr
默认情况下,该工具将标题放置在图像的顶部,将屏幕截图放置在图像的底部。它使用白色背景,黑色标题和屏幕截图后面的微妙阴影。
以下示例使用默认设置
$ scrscr --caption "Scribble this caption" --screenshot example-input.png --output example-output.png
可以通过使用多个命令行选项来自定义布局。显示有关所有可用命令和选项的帮助
$ scrscr --help
$ scrscr help decorate
以下示例定义了所有基本选项,包括它们的默认值
$ scrscr decorate \
--caption "Example output with default options and long caption" \
--screenshot example-input.png \
--output example-output-default.png \
--layout "caption-before-screenshot" \
--background-color "#FFFFFF" \
--background-image-scaling "stretch-fill" \
--background-image-alignment "middle center" \
--caption-size-factor 0.25 \
--caption-alignment "center" \
--caption-color "#000000" \
--caption-font-name "SF Compact" \
--caption-font-style "Bold" \
--caption-font-size 32 \
--caption-rotation "0" \
--screenshot-size-factor 0.85 \
--screenshot-corner-radius 5 \
--screenshot-shadow-size 5 \
--screenshot-shadow-color "#000000" \
--screenshot-border-size 0 \
--screenshot-border-color "#000000" \
--screenshot-rotation "0" \
--verbose
另请查看 examples.sh
脚本和 Examples
文件夹,以获取更多使用场景。
有四种不同的布局类型可用,可以使用 --layout
选项定义
所有布局都可以进一步自定义,即选项 --caption-size-factor
和 --screenshot-size-factor
能够实现更多变化。
四种不同布局类型的示例
在命令行上定义颜色受到广泛使用的 CSS 语法的子集的启发。
可以使用十六进制语法定义单个颜色,如下所示,其中每两位数字定义颜色的红色,绿色和蓝色部分
--background-color "#0099FF"
某些选项还支持渐变,即 --caption-color
,--background-color
和 --screenshot-border-color
。对于渐变,必须至少定义两种颜色。默认情况下,颜色从上到下渲染。
线性渐变
--background-color "linear-gradient(#FF0000, #FFA500, #FFFF00, #00FF00, #0000FF, #FF00FF)"
径向渐变
--background-color "radial-gradient(#FF0000, #0000FF)"
通过在颜色参数列表之前使用可选的方向参数来指定渐变方向。默认情况下,这是“to-bottom”,但可以是水平方向(即“to-right”或“to-left”),垂直方向(即“to-bottom”或“to-top”)或对角线方向(即“to-bottom-right”,“to-bottom-left”,“to-top-right”或“to-top-left”)
--background-color "linear-gradient(to-bottom-right, #FFFFFF, #000000)"
通过定义在屏幕截图后面渲染的背景图像,可以实现更多专门的背景,例如使用以下选项
--background-image Examples/example-background.jpg
--background-image-scaling "aspect-fill"
--background-image-alignment "bottom"
也可以将标题颜色定义为渐变
--caption-color "linear-gradient(to-right, #FF0000, #0000FF)"
渐变和背景图像的示例
可以使用选项“caption-rotation”和“screenshot-rotation”旋转标题文本和屏幕截图。
角度可以用度数(例如“45deg”)或弧度(例如“-3.1415rad”)指定。默认为“0”。正角度导致顺时针旋转,负值导致逆时针旋转。
--caption-rotation "-5deg"
--screenshot-rotation "5deg"
旋转标题和屏幕截图的示例
可以从 JSON 文件加载所有选项,而不是在命令行上定义它们。使用 --config
选项指定 JSON 文件的路径。首先应用文件中的设置,并且可以通过命令行中的设置覆盖它们。
所有设置都具有与命令行上相同的名称,但以驼峰式书写。支持部分 JSON 文件,因此可以在文件中仅定义一小部分选项。所有缺失的选项均以默认值提供。
以下示例在 JSON 中定义了所有选项及其默认值
{
"layout" : {
"layoutType" : "caption-before-screenshot"
},
"screenshot" : {
"screenshotBorderColor" : "#000000",
"screenshotBorderSize" : 0,
"screenshotCornerRadius" : 5,
"screenshotRotation" : "0",
"screenshotShadowColor" : "#000000",
"screenshotShadowSize" : 5,
"screenshotSizeFactor" : 0.85
},
"background" : {
"backgroundColor" : "#FFFFFF",
"backgroundImageAlignment" : "middle center",
"backgroundImageScaling" : "stretch-fill"
},
"caption" : {
"captionAlignment" : "center",
"captionColor" : "#000000",
"captionFontName" : "SF Compact",
"captionFontSize" : 32,
"captionFontStyle" : "Bold",
"captionRotation" : "0",
"captionSizeFactor" : 0.25
}
}
我开始开发这个工具作为一个副项目,因为我不想以任何理由使用 fastlane,它通过其 frameit 插件提供类似的东西。我想要一个简单的命令行工具,我可以简单地在我的脚本(已经自动生成屏幕截图)中调用它,以便为 App Store 美化它们。
该项目使用纯 CoreGraphics 和 CoreText API 进行布局(没有 AppKit 或 UIKit),因此它应该具有很好的可移植性。
会不时有更新和新功能,我会尽量继续努力,只要我自己使用它。
如果您喜欢这个项目,您可以给我买一杯咖啡或成为我的 GitHub 赞助者