misc/flag-icons: supply three flag decoration flavors

- Add 16px height missing from the initial check-in
- Factor out common shell code into simple() function
  and feed it with specifics; rounded() is special as
  it does more complicated image transformations
This commit is contained in:
Alexey Dokuchaev 2025-05-08 01:52:50 +00:00
parent 09fbf9cb32
commit 7a62e423dc
3 changed files with 43 additions and 6 deletions

View File

@ -19,12 +19,17 @@ NO_ARCH= yes
NO_INSTALL= yes
FLAGS_TOPDIR= ${PREFIX}/share/icons/${PORTNAME}
FLAG_SIZES= 24 32 48 64 96 128 192 256 # 512 adds 27MB for .tbz package
FLAG_SIZES= 16 24 32 48 64 96 128 192 256 # 512 adds 25+ MB for .tbz package
FLAVORS= plain bordered rounded
.if ${FLAVOR:U:Nplain}
PKGNAMESUFFIX= -${FLAVOR}
.endif
# TODO: add bordered and plain versions maybe?
do-build:
cd ${BUILD_WRKSRC}/flags && ${SH} ${FILESDIR}/makeflags.sh \
rounded_corners ${STAGEDIR}${FLAGS_TOPDIR}/rounded ${FLAG_SIZES}
${FLAVOR} ${STAGEDIR}${FLAGS_TOPDIR}/${FLAVOR} ${FLAG_SIZES}
post-stage:
cd ${STAGEDIR}${PREFIX} && ${FIND} share -type f >> ${TMPPLIST}

View File

@ -1,5 +1,37 @@
simple()
{
local comment convert_extra_args destdir height ratio subdir t0 width
comment=$1; convert_extra_args=$2; destdir=$3; shift 3
for subdir in ?x?; do
ratio=${subdir%x*}/${subdir#*x}
for height; do
width=$((height * $ratio))
mkdir -p "$destdir/${width}x${height}"
echo -n "Generating $comment flags ${width}x${height}... "
t0=$(date +%s)
for flag in $subdir/*.svg; do
convert -resize ${width}x${height} $convert_extra_args \
"$flag" "$destdir/${width}x${height}/$(basename "$flag" svg)png"
done
echo "finished in $(date -ur $((`date +%s`-t0)) +%M:%S)"
done
done
}
plain()
{
simple undecorated -strip "$@"
}
bordered()
{
simple black-bordered '-shave 1x1 -bordercolor black -border 1 -strip' "$@"
}
# https://joeldare.com/rounding-image-corners-with-imagemagick
rounded_corners()
rounded()
{
local destdir height mask radius ratio subdir t0 width
@ -18,7 +50,7 @@ rounded_corners()
mkdir -p "$destdir/${width}x${height}"
echo -n "Generating flags ${width}x${height}... "
echo -n "Generating rounded corner flags ${width}x${height}... "
t0=$(date +%s)
for flag in $subdir/*.svg; do
convert -resize ${width}x${height} \

View File

@ -1,2 +1,2 @@
A curated collection of all country flags in 4x3 and 1x1 formats
converted from SVG to PNG for various sizes, from 24px to 256px.
converted from SVG to PNG for various sizes, from 16px to 256px.