#我从RawImage.texture中利用Texture2D截取了一张图片,但是我现在想要根据矩形在这张图片的正中间,截取一张100*100的图片 劳烦各位给个解决方案。或者代码我借鉴借鉴。
时间: 2024-02-13 19:01:25 浏览: 93
用鼠标画矩形截取图像(请帮忙调试)
你可以使用Texture2D的GetPixels方法获取到Texture2D的像素信息,然后根据矩形在像素信息中截取需要的部分,最后创建新的Texture2D即可。
以下是示例代码:
```csharp
// 原始图片的Texture2D
Texture2D sourceTexture;
// 矩形的左下角在原始图片中的像素坐标
int x = 50;
int y = 50;
// 截取的宽度和高度
int width = 100;
int height = 100;
// 获取原始图片的像素信息
Color[] pixels = sourceTexture.GetPixels();
// 创建新的Texture2D
Texture2D newTexture = new Texture2D(width, height);
// 遍历像素信息,从矩形左下角开始截取指定大小的部分
for (int i = y; i < y + height; i++)
{
for (int j = x; j < x + width; j++)
{
int index = i * sourceTexture.width + j;
Color pixel = pixels[index];
newTexture.SetPixel(j - x, i - y, pixel);
}
}
// 应用修改
newTexture.Apply();
```
需要注意的是,这种方法会造成一定的性能开销,如果需要频繁地进行截取操作,建议使用RenderTexture来进行优化。
阅读全文