You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下如何用PowerShell或工具编程写入图片至剪贴板及格式转换?

PowerShell剪贴板图片操作:读取、格式转换与写入替代方案

1. 读取剪贴板中的图片

使用Get-Clipboard -Format Image可直接获取剪贴板内的图片,返回对象类型为System.Drawing.Bitmap:

$clipImage = Get-Clipboard -Format Image

2. 将图片转换为Buffer(字节数组)或Base64字符串

转换为字节数组(Buffer)

借助System.IO.MemoryStream将Bitmap对象转为字节数组,可指定输出图片格式(如Png、Jpeg):

$stream = New-Object System.IO.MemoryStream
$clipImage.Save($stream, [System.Drawing.Imaging.ImageFormat]::Png)
$imageBuffer = $stream.ToArray()
$stream.Dispose()

转换为Base64字符串

基于生成的字节数组,直接调用Convert.ToBase64String()完成转换:

$base64String = [Convert]::ToBase64String($imageBuffer)

一步到位的简化写法:

$clipImage = Get-Clipboard -Format Image
$stream = New-Object System.IO.MemoryStream
$clipImage.Save($stream, [System.Drawing.Imaging.ImageFormat]::Png)
$base64String = [Convert]::ToBase64String($stream.ToArray())
$stream.Dispose()

3. 解决Set-Clipboard不支持图片写入的问题

PowerShell原生Set-Clipboard无直接写入图片的参数,可通过.NET的System.Windows.Forms.Clipboard类实现图片写入:

# 加载必要程序集
Add-Type -AssemblyName System.Windows.Forms

# 示例:从本地文件读取图片并写入剪贴板
$image = [System.Drawing.Bitmap]::FromFile("C:\example.png")
[System.Windows.Forms.Clipboard]::SetImage($image)
$image.Dispose()

若在PowerShell Core环境运行,需先安装System.Windows.Forms NuGet包再加载程序集。

内容的提问来源于stack exchange,提问作者Huakun Shen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:15:34