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

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

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

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

效果

原圖

生成出來的灰白圖

制作方法

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

然后選中項(xiàng)目中的一張圖片,然后點(diǎn)擊菜單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);

   // 如果提示圖片不可讀,需要設(shè)置一下isReadable為true, 操作完記得再設(shè)置為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];
    // 顏色值計(jì)算,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...
 
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

    C#對Json進(jìn)行序列化和反序列化

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

    C#獲取目錄最后訪問時(shí)間的方法

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

    C# log4net日志庫的用法小結(jié)

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

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

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

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

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

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

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

最新評論