You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.6 KiB
70 lines
2.6 KiB
# Copyright 2017 Vector Creations Ltd |
|
# |
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
# you may not use this file except in compliance with the License. |
|
# You may obtain a copy of the License at |
|
# |
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
# |
|
# Unless required by applicable law or agreed to in writing, software |
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
# See the License for the specific language governing permissions and |
|
# limitations under the License. |
|
|
|
# genflags.sh - Generates pngs for use with CountryDropdown.js |
|
# |
|
# Dependencies: |
|
# - imagemagick --with-rsvg (because default imagemagick SVG |
|
# renderer does not produce accurate results) |
|
# |
|
# on macOS, this is most easily done with: |
|
# brew install imagemagick --with-librsvg |
|
# |
|
# This will clone the googlei18n flag repo before converting |
|
# all phonenumber.js-supported country flags (as SVGs) into |
|
# PNGs that can be used by CountryDropdown.js. |
|
|
|
# Allow CTRL+C to terminate the script |
|
trap "echo Exited!; exit;" SIGINT SIGTERM |
|
|
|
# git clone the google repo to get flag SVGs |
|
git clone git@github.com:googlei18n/region-flags |
|
for f in region-flags/svg/*.svg; do |
|
# Skip state flags |
|
if [[ $f =~ [A-Z]{2}-[A-Z]{2,3}.svg ]] ; then |
|
echo "Skipping state flag "$f |
|
continue |
|
fi |
|
|
|
# Skip countries not included in phonenumber.js |
|
if [[ $f =~ (AC|CP|DG|EA|EU|IC|TA|UM|UN|XK).svg ]] ; then |
|
echo "Skipping non-phonenumber supported flag "$f |
|
continue |
|
fi |
|
|
|
# Run imagemagick convert |
|
# -background none : transparent background |
|
# -resize 50x30 : resize the flag to have a height of 15px (2x) |
|
# By default, aspect ratio is respected so the width will |
|
# be correct and not necessarily 25px. |
|
# -filter Lanczos : use sharper resampling to avoid muddiness |
|
# -gravity Center : keep the image central when adding an -extent |
|
# -border 1 : add a 1px border around the flag |
|
# -bordercolor : set the border colour |
|
# -extent 54x54 : surround the image with padding so that it |
|
# has the dimensions 27x27px (2x). |
|
convert $f -background none -filter Lanczos -resize 50x30 \ |
|
-gravity Center -border 1 -bordercolor \#e0e0e0 \ |
|
-extent 54x54 $f.png |
|
|
|
# $f.png will be region-flags/svg/XX.svg.png at this point |
|
|
|
# Extract filename from path $f |
|
newname=${f##*/} |
|
# Replace .svg with .png |
|
newname=${newname%.svg}.png |
|
# Move the file to flags directory |
|
mv $f.png ../res/flags/$newname |
|
echo "Generated res/flags/"$newname |
|
done
|
|
|