欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity實現(xiàn)圖片生成灰白圖的方法

 更新時間:2020年04月18日 15:42:11   作者:林新發(fā)  
這篇文章主要為大家詳細介紹了Unity實現(xiàn)圖片生成灰白圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Unity生成圖片灰白圖的具體代碼,供大家參考,具體內容如下

效果

原圖

生成出來的灰白圖

制作方法

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

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

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

// 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...
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • c#可以創(chuàng)建任意控件的拖動方法

    c#可以創(chuàng)建任意控件的拖動方法

    下面小編就為大家分享一篇c#可以創(chuàng)建任意控件的拖動方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • c#中LINQ的基本用法(三)

    c#中LINQ的基本用法(三)

    這篇文章介紹了c#中LINQ的基本用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下的相關資料
    2022-04-04
  • C#?DataSet結合FlyTreeView實現(xiàn)顯示樹狀模型數(shù)據(jù)

    C#?DataSet結合FlyTreeView實現(xiàn)顯示樹狀模型數(shù)據(jù)

    NineRays.WebControls.FlyTreeView?是?9rays.net?推出的一款功能強大的樹狀模型數(shù)據(jù)顯示控件,本文主要介紹了如何使用其并結合?DataSet對象進行數(shù)據(jù)顯示,感興趣的可以了解下
    2024-04-04
  • C# SQLite執(zhí)行效率的優(yōu)化教程

    C# SQLite執(zhí)行效率的優(yōu)化教程

    這篇文章主要給大家介紹了關于C# SQLite執(zhí)行效率優(yōu)化的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C# SQLite具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-06-06
  • C#對Json進行序列化和反序列化

    C#對Json進行序列化和反序列化

    這篇文章介紹了C#對Json進行序列化和反序列化的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#獲取目錄最后訪問時間的方法

    C#獲取目錄最后訪問時間的方法

    這篇文章主要介紹了C#獲取目錄最后訪問時間的方法,涉及C#中LastAccessTime方法的使用技巧,需要的朋友可以參考下
    2015-04-04
  • C# log4net日志庫的用法小結

    C# log4net日志庫的用法小結

    log4net日志開源庫是用來控制日志文件大小,日志文件個數(shù),滾動式覆蓋,自由控制日志打印等級,今天通過本文給大家介紹C# log4net日志庫的用法小結,感興趣的朋友一起看看吧
    2021-10-10
  • c#數(shù)據(jù)綁定之刪除datatable數(shù)據(jù)示例

    c#數(shù)據(jù)綁定之刪除datatable數(shù)據(jù)示例

    這篇文章主要介紹了c#刪除datatable數(shù)據(jù)示例,需要的朋友可以參考下
    2014-04-04
  • Unity shader實現(xiàn)遮罩效果

    Unity shader實現(xiàn)遮罩效果

    這篇文章主要為大家詳細介紹了Unity shader實現(xiàn)遮罩效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#微信公眾號開發(fā)之用戶管理

    C#微信公眾號開發(fā)之用戶管理

    這篇文章介紹了C#微信公眾號開發(fā)之用戶管理,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論