generated from dellevin/template
自定义图标
This commit is contained in:
43
tool/generate_icon2_with_padding.ps1
Normal file
43
tool/generate_icon2_with_padding.ps1
Normal 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!"
|
||||
Reference in New Issue
Block a user