中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

丹江口市| 增城市| 鹤山市| 保靖县| 西平县| 安平县| 宜兰县| 宜章县| 宿州市| 萨嘎县| 来宾市| 无极县| 浦北县| 若羌县| 肥西县| 乐业县| 合水县| 元氏县| 齐齐哈尔市| 宁陵县| 上思县| 北海市| 新闻| 乡宁县| 博客| 西充县| 荣昌县| 湘潭市| 兴隆县| 忻城县| 扎赉特旗| 五家渠市| 香格里拉县| 洛阳市| 贡山| 平邑县| 翁牛特旗| 德令哈市| 射洪县| 灵寿县| 嵊州市|