🏆 个人愚见,没事写写笔记
🏆《博客内容》:Unity3D开发内容
🏆🎉欢迎 👍点赞✍评论⭐收藏
🔎问题:传给服务器的图片太大,服务器需很大内存,把图片压缩小给服务器
☀️具体实现:
/// <summary>
/// 压缩图片
/// </summary>
/// <param name="source">被压缩图片</param>
/// <param name="targetWidth">压缩宽度</param>
/// <param name="targetHeight">压缩高度</param>
/// <returns></returns>
private Texture2D ScaleTexture(Texture2D source, int targetWidth, int targetHeight)
{
Texture2D result = new Texture2D(targetWidth, targetHeight, source.format, true);
Color[] rpixels = result.GetPixels(0);
float incX = ((float)1 / source.width) * ((float)source.width / targetWidth);
float incY = ((float)1 / source.height) * ((float)source.height / targetHeight);
for (int px = 0; px < rpixels.Length; px++)
{
rpixels[px] = source.GetPixelBilinear(incX * ((float)px % targetWidth), incY * ((float)Mathf.Floor(px / targetWidth)));
}
result.SetPixels(rpixels, 0);
result.Apply();
return result;
}