private void GetGreenPixelsFromPng(string imagePath) { // 加载图片 Texture2D image = LoadImage(imagePath); // 提取绿色像素 Color[] pixels = image.GetPixels(); for (int i = 0; i < pixels.Length; i++) { if (pixels[i].g > 0.5f && pixels[i].r < 0.5f && pixels[i].b < 0.5f) { // 绿色像素 Debug.Log("绿色像素坐标:(" + (i % image.width) + ", " + (i / image.width) + ")"); } } } 输出 vertor[]
时间: 2024-02-14 10:28:19 浏览: 71
要输出绿色像素的位置信息为Vector2数组,你可以将每个绿色像素的坐标存储在一个List<Vector2>中,然后将其转换为Vector2数组。
下面是修改后的代码示例:
```csharp
private Vector2[] GetGreenPixelsFromPng(string imagePath)
{
// 加载图片
Texture2D image = LoadImage(imagePath);
// 存储绿色像素坐标
List<Vector2> greenPixelPositions = new List<Vector2>();
// 提取绿色像素
Color[] pixels = image.GetPixels();
for (int i = 0; i < pixels.Length; i++)
{
if (pixels[i].g > 0.5f && pixels[i].r < 0.5f && pixels[i].b < 0.5f)
{
// 绿色像素
int x = i % image.width;
int y = i / image.width;
greenPixelPositions.Add(new Vector2(x, y));
}
}
// 转换为Vector2数组并返回
return greenPixelPositions.ToArray();
}
```
在这个示例中,我们创建了一个List<Vector2>来存储绿色像素的坐标。当发现一个绿色像素时,我们将其坐标以Vector2形式添加到列表中。
最后,通过调用ToArray方法将列表转换为Vector2数组,并将其作为函数的返回值。
你可以在其他地方调用GetGreenPixelsFromPng函数,并使用返回的Vector2数组进行后续处理或输出。
阅读全文