| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # 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.
- set -e
- # Allow CTRL+C to terminate the script
- trap "echo Exited!; exit;" SIGINT SIGTERM
- # git clone the google repo to get flag SVGs
- git clone [email protected]: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
|