private static void SaveResized(Texture2D tex, int width, int height, int x, int y) { var target = new Texture2D(width, height, TextureFormat.RGBA32, false); var targetData = target.GetRawTextureData <Color32>(); var clearColor = Color.clear; for (int l = 0; l < height; ++l) { for (int k = 0; k < x; ++k) //left border { targetData[l * width + k] = clearColor; } for (int k = tex.width - x; k < width; ++k) //right border { targetData[l * width + k] = clearColor; } } for (int k = x; k < width - x; ++k) { for (int l = 0; l < y; ++l) //bottom border { targetData[l * width + k] = clearColor; } for (int l = tex.height - y; l < height; ++l) //top border { targetData[l * width + k] = clearColor; } } var rt = RenderTexture.GetTemporary(tex.width, tex.height); var rta = RenderTexture.active; RenderTexture.active = rt; GL.Clear(false, true, Color.clear); GL.LoadPixelMatrix(0, 1, 1, 0); UnityGraphics.DrawTexture(new Rect(0, 0, 1, 1), tex, MatCopy, 0);//point copy target.ReadPixels(new Rect(0, 0, tex.width, tex.height), x, y); RenderTexture.active = rta; RenderTexture.ReleaseTemporary(rt); string projectPath = Application.dataPath.Replace("/Assets", "/"); string path = AssetDatabase.GetAssetPath(tex); File.WriteAllBytes(projectPath + path, target.EncodeToPNG()); AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate); }
public static void CreatePreview128() { AssetDatabase.StartAssetEditing(); foreach (var tex in Selection.GetFiltered <Texture2D>(SelectionMode.DeepAssets)) { if (tex.width == tex.height) { continue; } int size = tex.width; Rect drawRect; if (tex.height > tex.width) { size = tex.height; int xr = (size - tex.width) / 2; drawRect = new Rect((float)xr / size, 0, (float)tex.width / size, 1); } else { int yr = size - tex.height; drawRect = new Rect(0, (float)yr / size, 1, (float)tex.width / size); } int tsize = 128; var target = new Texture2D(tsize, tsize, TextureFormat.RGBA32, false); var rt = RenderTexture.GetTemporary(tsize, tsize); var rta = RenderTexture.active; RenderTexture.active = rt; GL.Clear(false, true, Color.clear); GL.LoadPixelMatrix(0, 1, 1, 0); UnityGraphics.DrawTexture(drawRect, tex, MatCopy, 1);//bilinear copy target.ReadPixels(new Rect(0, 0, tsize, tsize), 0, 0); RenderTexture.active = rta; RenderTexture.ReleaseTemporary(rt); string projectPath = Application.dataPath.Replace("/Assets", "/"); string path = AssetDatabase.GetAssetPath(tex) + "_sqprv.png"; File.WriteAllBytes(projectPath + path, target.EncodeToPNG()); AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate); } AssetDatabase.StopAssetEditing(); }
public static void DrawTexture(Rect screenRect, Texture texture, Rect sourceRect, int leftBorder, int rightBorder, int topBorder, int bottomBorder) { Material mat = null; Graphics.DrawTexture(screenRect, texture, sourceRect, leftBorder, rightBorder, topBorder, bottomBorder, mat); }
public static void DrawTexture(Rect screenRect, Texture texture, int leftBorder, int rightBorder, int topBorder, int bottomBorder, [UnityEngine.Internal.DefaultValue("null")] Material mat) { Graphics.DrawTexture(screenRect, texture, new Rect(0f, 0f, 1f, 1f), leftBorder, rightBorder, topBorder, bottomBorder, mat); }
public static void DrawTexture(Rect screenRect, Texture texture, [UnityEngine.Internal.DefaultValue("null")] Material mat) { Graphics.DrawTexture(screenRect, texture, 0, 0, 0, 0, mat); }
public static void DrawTexture(Rect screenRect, Texture texture) { Material mat = null; Graphics.DrawTexture(screenRect, texture, mat); }
public static void DrawTexture(Rect screenRect, Texture texture, Rect sourceRect, int leftBorder, int rightBorder, int topBorder, int bottomBorder, Color color, Material mat) { int pass = -1; Graphics.DrawTexture(screenRect, texture, sourceRect, leftBorder, rightBorder, topBorder, bottomBorder, color, mat, pass); }
public static void DrawTexture(Rect screenRect, Texture texture, Material mat) { int pass = -1; Graphics.DrawTexture(screenRect, texture, mat, pass); }