用 PowerShell 把多张图片拼成一张

借助 Windows 自带的 System.Drawing,把文件夹里的 JPG 从上到下拼接成一张长图。

Windows图片System.DrawingPowerShell低风险
在图片文件夹中用 Windows PowerShell 运行上面的 System.Drawing 脚本,会生成从上到下拼接的 combined.jpg。

01命令

命令
$ Add-Type -AssemblyName System.Drawing
$files = Get-ChildItem "*.jpg" | Sort-Object Name
$imgs = $files | ForEach-Object { [System.Drawing.Image]::FromFile($_.FullName) }
$w = ($imgs | Measure-Object Width -Maximum).Maximum
$h = ($imgs | Measure-Object Height -Sum).Sum
$bmp = New-Object System.Drawing.Bitmap($w, $h)
$g = [System.Drawing.Graphics]::FromImage($bmp)
$y = 0
foreach ($i in $imgs) { $g.DrawImage($i, 0, $y, $i.Width, $i.Height); $y += $i.Height }
$bmp.Save("combined.jpg", [System.Drawing.Imaging.ImageFormat]::Jpeg)
$g.Dispose(); $bmp.Dispose()

02作用说明

脚本会加载文件夹里的每张 JPG,按最宽的图片计算画布宽度、按总高度计算画布大小,然后依次把每张图绘制在前一张下方。System.Drawing 是 Windows 内置组件,无需安装任何第三方软件。想改成左右拼接,只需把宽高计算互换、用 x 递增代替 y。

03风险

风险低风险
使用条件Windows PowerShell 5.1 (powershell.exe). Output combined.jpg is written next to the source images.
!注意: 图片太多时画布会非常大,内存占用随总尺寸增长——超长拼接请分批处理。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • Bitmap Class (System.Drawing)
    Microsoft Learn · vendor-doc · 2026-09-17
    依据: Documents the System.Drawing Bitmap and Graphics classes used from PowerShell to create and draw a combined image.

最后验证: 2026-09-18 · 分类: 媒体

06相关方案