/// <summary>
/// 切图
/// </summary>
/// <param name="targetTure">全屏截图</param>
/// <param name="targetRec">中心锚点</param>
/// <returns></returns>
public static Texture2D CutTexture(Texture2D targetTure, RectTransform targetRec)
{
Canvas canvas = null; //获取一下画布
Vector2 screenVec = RectTransformUtility.WorldToScreenPoint(Camera.main, targetRec.transform.position);
float widthSize = targetRec.rect.size.x / canvas.GetComponent<RectTransform>().rect.size.x * Screen.width;
float heighSize = targetRec.rect.size.y / canvas.GetComponent<RectTransform>().rect.size.y * Screen.height;
Texture2D m_resultTure = new Texture2D((int)widthSize, (int)heighSize, TextureFormat.RGB24, false);
int targetVecX = (int)(screenVec.x - widthSize / 2);
int targetVecY = (int)(screenVec.y - heighSize / 2);
if (targetVecY + (int)heighSize > Screen.height)
{
targetVecY = Screen.height - (int)heighSize;
}
Color[] m_Colors = targetTure.GetPixels(targetVecX, targetVecY, (int)widthSize, (int)heighSize);
m_resultTure.SetPixels(m_Colors);
m_resultTure.Apply();
targetTure = null;
var bytes = m_resultTure.EncodeToPNG();
var filePath = string.Concat("MyFilePath", ".png");
FileOperation.SaveFileByBytes(filePath, bytes, true, true);
return m_resultTure;
}
unity 在Texture2D上切图(Texture2D为全屏)
猜你喜欢
转载自blog.csdn.net/weixin_47819574/article/details/129438430
今日推荐
周排行