performance-optimizations-testing #159
@@ -20,9 +20,16 @@ if [ ! -f "$ASSETS_DIR/icon.png" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if ImageMagick is available
|
||||
if ! command -v convert &> /dev/null; then
|
||||
echo "[ERROR] ImageMagick (convert) not found. Please install ImageMagick."
|
||||
# Check if ImageMagick is available and determine the correct command
|
||||
IMAGEMAGICK_CMD=""
|
||||
if command -v magick &> /dev/null; then
|
||||
IMAGEMAGICK_CMD="magick"
|
||||
echo "[INFO] Using ImageMagick v7+ (magick command)"
|
||||
elif command -v convert &> /dev/null; then
|
||||
IMAGEMAGICK_CMD="convert"
|
||||
echo "[INFO] Using ImageMagick v6 (convert command)"
|
||||
else
|
||||
echo "[ERROR] ImageMagick not found. Please install ImageMagick."
|
||||
echo " Arch: sudo pacman -S imagemagick"
|
||||
echo " Ubuntu: sudo apt-get install imagemagick"
|
||||
echo " macOS: brew install imagemagick"
|
||||
@@ -39,20 +46,35 @@ mkdir -p "$ANDROID_RES_DIR/mipmap-anydpi-v26"
|
||||
|
||||
echo "[INFO] Generating launcher icons..."
|
||||
|
||||
# Function to resize image using the appropriate ImageMagick command
|
||||
resize_image() {
|
||||
local input="$1"
|
||||
local output="$2"
|
||||
local size="$3"
|
||||
|
||||
if [ "$IMAGEMAGICK_CMD" = "magick" ]; then
|
||||
# ImageMagick v7+ syntax
|
||||
magick "$input" -resize "${size}x${size}" "$output"
|
||||
else
|
||||
# ImageMagick v6 syntax
|
||||
convert "$input" -resize "${size}x${size}" "$output"
|
||||
fi
|
||||
}
|
||||
|
||||
# Generate launcher icons for different densities
|
||||
# Android launcher icon sizes: mdpi=48, hdpi=72, xhdpi=96, xxhdpi=144, xxxhdpi=192
|
||||
convert "$ASSETS_DIR/icon.png" -resize 48x48 "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 72x72 "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 96x96 "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 144x144 "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 192x192 "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png"
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png" 48
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png" 72
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png" 96
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png" 144
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png" 192
|
||||
|
||||
# Generate round launcher icons
|
||||
convert "$ASSETS_DIR/icon.png" -resize 48x48 "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher_round.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 72x72 "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher_round.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 96x96 "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher_round.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 144x144 "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher_round.png"
|
||||
convert "$ASSETS_DIR/icon.png" -resize 192x192 "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher_round.png"
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher_round.png" 48
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher_round.png" 72
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher_round.png" 96
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher_round.png" 144
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher_round.png" 192
|
||||
|
||||
# Create simple launcher XML files (no adaptive icons for now)
|
||||
cat > "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher.xml" << 'EOF'
|
||||
@@ -72,7 +94,7 @@ cat > "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher_round.xml" << 'EOF'
|
||||
EOF
|
||||
|
||||
# Create foreground mipmap files for adaptive icons
|
||||
convert "$ASSETS_DIR/icon.png" -resize 108x108 "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher_foreground.png"
|
||||
resize_image "$ASSETS_DIR/icon.png" "$ANDROID_RES_DIR/mipmap-anydpi-v26/ic_launcher_foreground.png" 108
|
||||
|
||||
echo "[SUCCESS] Generated Android launcher icons:"
|
||||
echo " - mipmap-mdpi/ic_launcher.png (48x48)"
|
||||
|
||||
@@ -1,22 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
# TimeSafari Android Icon Generation Script (Placeholder Icons)
|
||||
# Generates placeholder Android launcher icons with "TS" text
|
||||
# Author: Matthew Raymer
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||
ANDROID_RES_DIR="$PROJECT_ROOT/android/app/src/main/res"
|
||||
|
||||
echo "=== TimeSafari Android Placeholder Icon Generation ==="
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [INFO] Starting Android placeholder icon generation"
|
||||
|
||||
# Check if ImageMagick is available and determine the correct command
|
||||
IMAGEMAGICK_CMD=""
|
||||
if command -v magick &> /dev/null; then
|
||||
IMAGEMAGICK_CMD="magick"
|
||||
echo "[INFO] Using ImageMagick v7+ (magick command)"
|
||||
elif command -v convert &> /dev/null; then
|
||||
IMAGEMAGICK_CMD="convert"
|
||||
echo "[INFO] Using ImageMagick v6 (convert command)"
|
||||
else
|
||||
echo "[ERROR] ImageMagick not found. Please install ImageMagick."
|
||||
echo " Arch: sudo pacman -S imagemagick"
|
||||
echo " Ubuntu: sudo apt-get install imagemagick"
|
||||
echo " macOS: brew install imagemagick"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create directories if they don't exist
|
||||
mkdir -p android/app/src/main/res/mipmap-mdpi
|
||||
mkdir -p android/app/src/main/res/mipmap-hdpi
|
||||
mkdir -p android/app/src/main/res/mipmap-xhdpi
|
||||
mkdir -p android/app/src/main/res/mipmap-xxhdpi
|
||||
mkdir -p android/app/src/main/res/mipmap-xxxhdpi
|
||||
mkdir -p "$ANDROID_RES_DIR/mipmap-mdpi"
|
||||
mkdir -p "$ANDROID_RES_DIR/mipmap-hdpi"
|
||||
mkdir -p "$ANDROID_RES_DIR/mipmap-xhdpi"
|
||||
mkdir -p "$ANDROID_RES_DIR/mipmap-xxhdpi"
|
||||
mkdir -p "$ANDROID_RES_DIR/mipmap-xxxhdpi"
|
||||
|
||||
# Function to generate placeholder icon using the appropriate ImageMagick command
|
||||
generate_placeholder_icon() {
|
||||
local size="$1"
|
||||
local output="$2"
|
||||
local pointsize="$3"
|
||||
|
||||
if [ "$IMAGEMAGICK_CMD" = "magick" ]; then
|
||||
# ImageMagick v7+ syntax
|
||||
magick -size "${size}x${size}" xc:blue -gravity center -pointsize "$pointsize" -fill white -annotate 0 "TS" "$output"
|
||||
else
|
||||
# ImageMagick v6 syntax
|
||||
convert -size "${size}x${size}" xc:blue -gravity center -pointsize "$pointsize" -fill white -annotate 0 "TS" "$output"
|
||||
fi
|
||||
}
|
||||
|
||||
echo "[INFO] Generating placeholder launcher icons..."
|
||||
|
||||
# Generate placeholder icons using ImageMagick
|
||||
convert -size 48x48 xc:blue -gravity center -pointsize 20 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-mdpi/ic_launcher.png
|
||||
convert -size 72x72 xc:blue -gravity center -pointsize 30 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-hdpi/ic_launcher.png
|
||||
convert -size 96x96 xc:blue -gravity center -pointsize 40 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
|
||||
convert -size 144x144 xc:blue -gravity center -pointsize 60 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
|
||||
convert -size 192x192 xc:blue -gravity center -pointsize 80 -fill white -annotate 0 "TS" android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
|
||||
generate_placeholder_icon 48 "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png" 20
|
||||
generate_placeholder_icon 72 "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png" 30
|
||||
generate_placeholder_icon 96 "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png" 40
|
||||
generate_placeholder_icon 144 "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png" 60
|
||||
generate_placeholder_icon 192 "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png" 80
|
||||
|
||||
echo "[INFO] Copying to round versions..."
|
||||
|
||||
# Copy to round versions
|
||||
cp android/app/src/main/res/mipmap-mdpi/ic_launcher.png android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
|
||||
cp android/app/src/main/res/mipmap-hdpi/ic_launcher.png android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
|
||||
cp android/app/src/main/res/mipmap-xhdpi/ic_launcher.png android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
|
||||
cp android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
|
||||
cp android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
|
||||
cp "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-mdpi/ic_launcher_round.png"
|
||||
cp "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-hdpi/ic_launcher_round.png"
|
||||
cp "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-xhdpi/ic_launcher_round.png"
|
||||
cp "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-xxhdpi/ic_launcher_round.png"
|
||||
cp "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher.png" "$ANDROID_RES_DIR/mipmap-xxxhdpi/ic_launcher_round.png"
|
||||
|
||||
echo "[SUCCESS] Generated Android placeholder launcher icons:"
|
||||
echo " - mipmap-mdpi/ic_launcher.png (48x48)"
|
||||
echo " - mipmap-hdpi/ic_launcher.png (72x72)"
|
||||
echo " - mipmap-xhdpi/ic_launcher.png (96x96)"
|
||||
echo " - mipmap-xxhdpi/ic_launcher.png (144x144)"
|
||||
echo " - mipmap-xxxhdpi/ic_launcher.png (192x192)"
|
||||
echo " - All round versions created"
|
||||
echo "[SUCCESS] Android placeholder icon generation completed successfully!"
|
||||
Reference in New Issue
Block a user