Texture2D srcTexture = Resources.Load(filePath) as Texture2D 加载的图片 会变形吗
时间: 2024-04-14 22:28:31 浏览: 122
android 绘图 加载大图片 图形变形
加载的图片是否会变形取决于加载的图片和目标 Texture2D 的宽高比是否一致。如果图片和 Texture2D 的宽高比不一致,加载的图片可能会被拉伸或压缩以适应目标 Texture2D 的尺寸,从而导致变形。
如果你希望保持加载的图片的宽高比并避免变形,你可以使用以下代码来调整 Texture2D 的尺寸并在保持原始宽高比的同时适应目标尺寸:
```csharp
string filePath = "1"; // 假设图片名为 "1.png"
Texture2D srcTexture = Resources.Load(filePath) as Texture2D;
int targetWidth = 512; // 目标 Texture2D 的宽度
int targetHeight = 512; // 目标 Texture2D 的高度
float aspectRatio = (float)srcTexture.width / srcTexture.height;
float targetAspectRatio = (float)targetWidth / targetHeight;
int finalWidth, finalHeight;
if (aspectRatio > targetAspectRatio)
{
finalWidth = targetWidth;
finalHeight = (int)(targetWidth / aspectRatio);
}
else
{
finalWidth = (int)(targetHeight * aspectRatio);
finalHeight = targetHeight;
}
// 创建一个新的 Texture2D,使用目标尺寸调整加载的纹理
Texture2D newTexture = new Texture2D(finalWidth, finalHeight);
Graphics.ConvertTexture(srcTexture, newTexture);
// 现在,newTexture 将是适应目标尺寸并保持原始宽高比的加载纹理
```
这段代码会根据目标 Texture2D 的宽高比和加载纹理的宽高比来计算调整后的尺寸。然后,使用 `Graphics.ConvertTexture` 方法将加载的纹理复制到新的 Texture2D 中,并适应目标尺寸。这样,新的 Texture2D `newTexture` 将是适应目标尺寸并保持原始宽高比的加载纹理,避免了变形。
阅读全文