简介
我正在尝试将“.bmp”文件转换为“.png”文件。我之前发现了一段使用 PowerShell 执行此操作的代码。发生的情况是,每转换一个图像,RAM 使用量增加的增量大致等于图像的大小。这会增加我拥有的最大 RAM 并降低我的电脑速度。
问题
我是否需要从 RAM 中释放加载的图像,如果需要,我该怎么做?
System.Drawing.Bitmap
是一次性的。使用后丢弃。此外,无需多次重新定义函数或重新加载程序集。
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
$paths = 'U:', 'F:', 'H:', 'J:', 'K:', 'I:'
foreach ($path in $paths) {
Get-ChildItem -File "$path\*.bmp" -Recurse | ForEach-Object {
$bitmap = [System.Drawing.Bitmap]::new($_.FullName)
$newname = $_.FullName -replace '.bmp$','.png'
$bitmap.Save($newname, "png")
$bitmap.Dispose()
}
}