😺

PlantUMLで画像を埋め込む

2021/11/07に公開

以下のスクリプトで、画像を変換する(要Docker)。

convert.sh
SPRITE=sprite_$1
# 透過色を白に変換(透過色は黒色で認識されてしまうため)
docker run -v `pwd`:/target dpokidov/imagemagick target/$1 -background white -flatten -alpha off target/$SPRITE
# 48x48に変換(大きすぎるとデコード時にエラーが出てしまうため)
docker run -v `pwd`:/target dpokidov/imagemagick target/sprite_$1 -resize 48x48 /target/$SPRITE
# 埋め込むデータに変換
docker run --rm -it -v `pwd`:/target krlsdu/plantuml-jar java -jar /usr/share/plantuml/plantuml.jar -encodesprite 16z target/$SPRITE
$ bash convert.sh circleci.png

以下で表示テスト。

@startuml

sprite $sprite_circleci [48x48/16z] {
hLRP4iCW20p64u7__znEfqdZGGwctSTarHKMS5a6m1eprbgn9E-M6u0lnF85ORnQ0h7A2Chh6JsIQE0C6jkXd87yJFSa5qYJ5fPBb5vJb3jq2uBS8n_qbH_m
9Nx3Nf_GXVT4f2b-M7B6AM0LD3LSF6n6ogGfAlqcRMvS_u_U6xbk-p7tVLxYg3vFUG_jWZe41pKNzY7ohTrLisFdew2vogUImtuJtmc0a7R4ZG6VgDHrFe2K
KW0Sv4Kbn-e5osQlHf1IEKV0-7C0i6AwGmwDkxLVVkTRzPZlUnrFQxwiVh3wpUfdQxsOwz5Qx-P-OkrNvdvexRVcVcwU5-PvT3FlEFqyJytp-lGzuFxstdZo
dda1
}
rectangle Sample [
    <$sprite_circleci>
]

@enduml

Discussion