EzPP發(fā)布的0.2.1里面,
提供了其史上最強(qiáng)功能:Yaml布局渲染。
你可以把一個Yaml文件渲染為圖片。
并且你的Yaml可以作為模版被復(fù)用。
你可以傳遞不同參數(shù)來生成不同的圖片。
你可以用這個功能畫Logo,畫封面或者其他圖片。
你又多了一個不裝/卸掉Photoshop的理由。
渲染的例子
1. 入門例子:hello_ezpp
這個例子顯示了使用ezpp的基本的渲染方法.
- 怎樣使用 canvas。
- 如何使用"text"類元素。
- 如何通過filename屬性自定義字體。
- 如何通過path屬性自定義字體。
從命令行輸入
ezpp render -i examples/render/hello_ezpp/hello.yaml
或者
ezpp render -i examples/render/hello_ezpp/hello_custom_font.yaml
examples/render/hello_ezpp/hello.yaml
# ezpp render -i examples/render/hello_ezpp/hello.yaml
canvas:
width: 240
height: 80
color: "#f93" # "#RGBA" or "#RRGGBBAA"
items:
-
type: "text"
title: "Hello, EzPP"
pos:
x: "center"
y: "center"
font:
path: "/System/Library/fonts/Monaco.dfont"
# filename: "ZhenyanGB.ttf"
size: 24
color: "#543"
輸出
FROM: examples/render/hello_ezpp/hello.yaml
TO: examples/render/hello_ezpp/hello.png
FROM: examples/render/hello_ezpp/hello_custom_font.yaml
TO: examples/render/hello_ezpp/hello_custom_font.png
結(jié)果:
2. 使用參數(shù)的例子:params
這個例子展示了如何利用參數(shù)來重用你的 *.yaml 文件。
- 如何使用"image"類元素。
- 如何使用"shadow"類元素。
- 如何使用參數(shù)。
從命令行輸入:
ezpp render -i examples/render/params/params.yaml -a '{"icon":"logo_256x256.png","title":"Hello EzPP"}' -o examples/render/params/hello_ezpp.png
examples/render/params/params.yaml
# params defines
params:
- "title"
- "icon"
canvas:
width: 256
height: 80
color: "#f93"
items:
-
type: "image"
filename: "__icon__" # params using
pos:
x: 16
y: "center"
-
title: "__title__" # params using
type: "text"
visible: true
pos:
x: 96
y: "center"
font:
path: "/System/Library/fonts/Monaco.dfont"
size: 24
color: "#543"
-
type: "shadow"
alpha: 0.1 # 0.0-1.0 shadow color is #000a
輸出
FROM: examples/render/params/params.yaml
TO: examples/render/params/hello_ezpp.png
結(jié)果:
參數(shù)有力量!
你也可像這樣創(chuàng)建一個 *.sh.
examples/render/params/render_params_demo.sh:
cd examples/render/params
ezpp render -i params.yaml -a '{"icon":"logo_64.png","title":"Hello"}' -o hello.png
ezpp render -i params.yaml -a '{"icon":"logo_64.png","title":"EzPP"}' -o ezpp.png
ezpp render -i params.yaml -a '{"icon":"logo_64.png","title":"Hello EzPP"}' -o hello_ezpp.png
cd ../../../
它將創(chuàng)建下列圖片:
你還可以批量處理數(shù)據(jù)并自動調(diào)用 'ezpp render ***'.
3. 遮罩例子mask
這個例子展示了如何創(chuàng)建一個遮罩圖層
- 如何使用"image"類元素。
- 如何使用"shadow"類元素。
- 如何使用"nested"類元素。
- 如何使用canvas的color屬性。
- 如何使用canvas的antialias_size屬性。
從命令行輸入:
ezpp render -i examples/render/mask/mask.yaml
ezpp render -i examples/render/mask/mask_antialias.yaml
examples/render/mask/mask.yaml
canvas:
#...
items:
-
type: "image"
#...
-
type: "shadow"
alpha: 0.1
-
type: "nested" # Just like a inline yaml file
pos:
x: 48
y: "center"
canvas:
width: 204
height: 72
antialias_size: 4 # 1,2,4,8,16 antialias range,The bigger the slower
color: "#0006" # "#RGB6" means alpha = 6/16
items:
-
type: "text"
title: "EzPP"
pos:
x: "center"
y: "center"
font:
path: "/System/Library/fonts/Monaco.dfont"
size: 32
color: "#543"
輸出
FROM: examples/render/mask/mask.yaml
TO: examples/render/mask/mask.png
FROM: examples/render/mask/mask_antialias.yaml
TO: examples/render/mask/mask_antialias.png
結(jié)果:
這是遮罩,是那個嵌套元素渲染出來的
4. slogan
這個例子顯示了使用ezpp的進(jìn)階的渲染方法.
- 如何使用"image"類元素。
- 如何使用"shadow"類元素。
- 如何使用"import"類元素來重用你的.yaml文件。
從命令行輸入:
ezpp render -i examples/render/slogan/ezpp_slogan.yaml
examples/render/slogan/ezpp_slogan.yaml
#...
items:
-
type: "import"
filename: "ezpp_slogan_top.yaml"
pos:
x: 0
y: 0
#...
輸出
FROM: examples/render/slogan/ezpp_slogan.yaml
TO: examples/render/slogan/ezpp_slogan.png
結(jié)果就是EzPP的slogan:
最后這個例子yaml比較多,可以看源碼:
https://github.com/ovotop/ezpp/tree/master/examples/render/slogan
其他功能:
改格式:
目前可以改的格式主要是3個 PNG,JPG,WEBP
修改格式 | 原圖JPG | 改格式為WEBP |
---|---|---|
文件名 | lego_mc_l.jpg | lego_mc_l.webp |
大小 | 203k | 109k |
圖片編輯:
原圖 | 修改后 |
---|---|
原圖
|
毛玻璃
|
原圖
|
改顏色
|
原圖192x192
|
改為64x64
|
文本:"EzPP" | 根據(jù)文本創(chuàng)建的圖標(biāo)
|
原圖
|
投影后
|
其中改顏色功能可以指定顏色值如“#3399ff”,
也可以修改色相[0,360)、亮度[-1.0,1.0]、飽和度[0,1.0]
投影功能中,只有一個背景干凈的圖,就可以投出45度角的陰影效果。
圖片批處理
-i不但支持單一文件還支持目錄
例如:
已有文件目錄
jianshu
├── ezpp_slogan.cn_256x128.png
├── ezpp_slogan_256x128_frosted.png
├── logo_256x256.png
└── logo_blue_hsv_v(-0.5).png
在命令行中輸入
ezpp resize -i jianshu -r -s "75%"
輸出:
on_size_parsed(jianshu, None, True, 75%)
resize: (256, 256)->(192, 192)
from: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/logo_256x256.png
to: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/logo_256x256_192x192.png
resize: (256, 128)->(192, 96)
from: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/ezpp_slogan_256x128_frosted.png
to: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/ezpp_slogan_256x128_frosted_192x96.png
resize: (256, 256)->(192, 192)
from: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/logo_blue_hsv_v(-0.5).png
to: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/logo_blue_hsv_v(-0.5)_192x192.png
resize: (256, 128)->(192, 96)
from: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/ezpp_slogan.cn_256x128.png
to: /Volumes/user/cjf/w/py/ezpp/docs/jianshu/ezpp_slogan.cn_256x128_192x96.png
修改后目錄中的文件
jianshu
├── ezpp_slogan.cn_256x128.png
├── ezpp_slogan.cn_256x128_192x96.png
├── ezpp_slogan_256x128_frosted.png
├── ezpp_slogan_256x128_frosted_192x96.png
├── logo_256x256.png
├── logo_256x256_192x192.png
├── logo_blue_hsv_v(-0.5).png
└── logo_blue_hsv_v(-0.5)_192x192.png
官網(wǎng)
https://github.com/ovotop/ezpp
安裝:
EzPP 需要python3 環(huán)境,安裝只需要一行命令。
pip3 inatall ezpp