91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Unity如何實現圖片生成灰白圖

發布時間:2020-08-03 09:17:44 來源:億速云 閱讀:257 作者:小豬 欄目:編程語言

小編這次要給大家分享的是Unity如何實現圖片生成灰白圖,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

效果

原圖

Unity如何實現圖片生成灰白圖

生成出來的灰白圖

Unity如何實現圖片生成灰白圖

制作方法

把文章末尾的的TextureUtils.cs腳本放到工程的Assets / Editor目錄中

然后選中項目中的一張圖片,然后點擊菜單Tools / GenGrayTexture

Unity如何實現圖片生成灰白圖

就會在同級目錄中生成灰白圖片了

Unity如何實現圖片生成灰白圖

// TextureUtils.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;

public class TextureUtils : MonoBehaviour
{
 [MenuItem("Tools/GenGrayTexture")]
 public static void GenGrayTexture()
 {
  // 獲取選中的圖片
  var textures = Selection.GetFiltered<Texture2D>(SelectionMode.DeepAssets);
  foreach (var t in textures)
  {
   var path = AssetDatabase.GetAssetPath(t);

   // 如果提示圖片不可讀,需要設置一下isReadable為true, 操作完記得再設置為false
   var imp = AssetImporter.GetAtPath(path) as TextureImporter;
   imp.isReadable = true;
   AssetDatabase.ImportAsset(path);

   var newTexture = new Texture2D(t.width, t.height, TextureFormat.RGBA32, false);
   var colors = t.GetPixels();
   var targetColors = newTexture.GetPixels();

   for (int i = 0, len = colors.Length; i < len; ++i)
   {
    var c = colors[i];
    // 顏色值計算,rgb去平均值
    var v = (c.r + c.g + c.b) / 3f;
    targetColors[i] = new Color(v, v, v, c.a);
   }
   newTexture.SetPixels(targetColors);
   string fname = path.Split('.')[0] + "_gray.png";
   File.WriteAllBytes(fname, newTexture.EncodeToPNG());

   imp.isReadable = false;
   AssetDatabase.Refresh();
  }
 }
}

如果要批量修改,可以用Directory.GetFiles接口來獲取特定格式的文件

var files = Directory.GetFiles("D:\\path", "*.*", SearchOption.AllDirectories);
foreach(var f in files)
{
 if(!f.EndsWith(".png") && !f.EndsWith(".jpg")) continue;
 // TODO...
 
}

看完這篇關于Unity如何實現圖片生成灰白圖的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

樟树市| 广东省| 永新县| 太白县| 祁连县| 汕尾市| 广宗县| 平顶山市| 阜平县| 汉寿县| 顺义区| 新民市| 鄢陵县| 勐海县| 湘西| 公主岭市| 崇阳县| 鄂州市| 彭泽县| 新野县| 泰州市| 吉林市| 房产| 剑川县| 九寨沟县| 安仁县| 饶河县| 皮山县| 五指山市| 怀集县| 阿拉善左旗| 剑阁县| 古田县| 常州市| 绵阳市| 秦皇岛市| 宜宾市| 南通市| 封丘县| 福贡县| 西安市|