PowerShell获取图像像素颜色异常:不同像素返回相同值求助
解决PowerShell获取图像像素颜色返回相同值的问题
核心问题:你的代码中
GetPixel方法的坐标参数写法错误,使用了$104、$919这种变量语法,但你并未定义这些变量,PowerShell会将其解析为空值,最终实际调用的是GetPixel(0, 0)(或默认无效坐标对应的像素),所以每次返回的都是同一个颜色。修正后的代码(适配PNG格式):
# 替换为你的PNG文件路径,支持相对/绝对路径 $filename = "T1.png" # 加载图像 $image = New-Object System.Drawing.Bitmap $filename # 获取指定坐标的像素颜色,注意:坐标是(X, Y),X为横向像素位置,Y为纵向像素位置 $pixelColor1 = $image.GetPixel(104, 919) Write-Host "坐标(104,919)的颜色:" $pixelColor1 $pixelColor2 = $image.GetPixel(1191, 300) Write-Host "坐标(1191,300)的颜色:" $pixelColor2 # 释放图像资源,避免占用 $image.Dispose()
- 额外注意事项:
- PNG格式支持透明通道,
$pixelColor会包含Alpha值(透明度),可通过$pixelColor.A、$pixelColor.R、$pixelColor.G、$pixelColor.B分别获取各通道数值。 - 确保坐标在图像有效范围内(X不能超过图像宽度-1,Y不能超过图像高度-1),否则会抛出参数错误异常。
- 使用相对路径时,确认当前PowerShell工作目录与图像文件所在目录一致,或直接使用绝对路径避免路径问题。
- PNG格式支持透明通道,
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

