自定义图标

This commit is contained in:
DelLevin-Home
2026-05-20 00:38:30 +08:00
parent 320fd9f692
commit 9560e37a44
19 changed files with 948 additions and 361 deletions

15
tool/check_icon_size.ps1 Normal file
View File

@@ -0,0 +1,15 @@
Add-Type -AssemblyName System.Drawing
$img = [System.Drawing.Image]::FromFile('d:\UserData\Desktop\my_proj\mooknote\assets\icon\app_icon.png')
Write-Host ('app_icon: ' + $img.Width + 'x' + $img.Height)
$img.Dispose()
$img2 = [System.Drawing.Image]::FromFile('d:\UserData\Desktop\my_proj\mooknote\assets\icon\app_icon2.png')
Write-Host ('app_icon2: ' + $img2.Width + 'x' + $img2.Height)
$img2.Dispose()
$sizes = @(48, 72, 96, 144, 192)
foreach ($size in $sizes) {
$f = [System.Drawing.Image]::FromFile('d:\UserData\Desktop\my_proj\mooknote\android\app\src\main\res\mipmap-mdpi\ic_launcher2.png')
Write-Host ('ic_launcher2 mdpi: ' + $f.Width + 'x' + $f.Height)
$f.Dispose()
break
}

29
tool/generate_icon2.ps1 Normal file
View File

@@ -0,0 +1,29 @@
$source = 'd:\UserData\Desktop\my_proj\mooknote\assets\icon\app_icon2.png'
$sizes = @{
'mipmap-mdpi' = 48
'mipmap-hdpi' = 72
'mipmap-xhdpi' = 96
'mipmap-xxhdpi' = 144
'mipmap-xxxhdpi' = 192
}
Add-Type -AssemblyName System.Drawing
$original = [System.Drawing.Image]::FromFile($source)
foreach ($dir in $sizes.Keys) {
$size = $sizes[$dir]
$bitmap = New-Object System.Drawing.Bitmap($size, $size)
$graphics = [System.Drawing.Graphics]::FromImage($bitmap)
$graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
$graphics.DrawImage($original, 0, 0, $size, $size)
$graphics.Dispose()
$output = "d:\UserData\Desktop\my_proj\mooknote\android\app\src\main\res\$dir\ic_launcher2.png"
$bitmap.Save($output, [System.Drawing.Imaging.ImageFormat]::Png)
$bitmap.Dispose()
Write-Host "Generated $output (${size}x${size})"
}
$original.Dispose()
Write-Host "Done!"

View File

@@ -0,0 +1,43 @@
Add-Type -AssemblyName System.Drawing
$source = 'd:\UserData\Desktop\my_proj\mooknote\assets\icon\app_icon2.png'
$original = [System.Drawing.Image]::FromFile($source)
# 目标尺寸(和 flutter_launcher_icons 一致)
$sizes = @{
'mipmap-mdpi' = 48
'mipmap-hdpi' = 72
'mipmap-xhdpi' = 96
'mipmap-xxhdpi' = 144
'mipmap-xxxhdpi' = 192
}
foreach ($dir in $sizes.Keys) {
$size = $sizes[$dir]
# 创建带透明背景的画布
$bitmap = New-Object System.Drawing.Bitmap($size, $size, [System.Drawing.Imaging.PixelFormat]::Format32bppArgb)
$graphics = [System.Drawing.Graphics]::FromImage($bitmap)
$graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
$graphics.SmoothingMode = [System.Drawing.Drawing2D.SmoothingMode]::HighQuality
# 计算缩放比例,保持宽高比并添加内边距(模拟 flutter_launcher_icons 的行为)
$padding = [math]::Round($size * 0.1) # 10% padding
$drawSize = $size - 2 * $padding
# 居中绘制
$x = $padding
$y = $padding
$graphics.DrawImage($original, $x, $y, $drawSize, $drawSize)
$graphics.Dispose()
$output = "d:\UserData\Desktop\my_proj\mooknote\android\app\src\main\res\$dir\ic_launcher2.png"
$bitmap.Save($output, [System.Drawing.Imaging.ImageFormat]::Png)
$bitmap.Dispose()
Write-Host "Generated $output (${size}x${size}) with padding"
}
$original.Dispose()
Write-Host "Done!"