zoukankan      html  css  js  c++  java
  • Unity中将相机截图保存本地后颜色变暗的解决方法

    最近要用Unity脚本在运行时截取相机图片,但是保存到本地后图片总是变暗。

    结果发现是不可以预先创建一个rendertexture赋值给相机的targetTexture,必须在脚本里动态创建。参考链接
    具体代码如下:

    var oldT = RenderTexture.active;
    var renderTextureTmp = RenderTexture.GetTemporary(1920, 1080, 32);
    RenderTexture.active = cameraForScreenShot.targetTexture = renderTextureTmp;
    cameraForScreenShot.Render();       
    var tmpTexture2D = new Texture2D(cameraForScreenShot.targetTexture.width, cameraForScreenShot.targetTexture.height);
    tmpTexture2D.ReadPixels(new Rect(0, 0, cameraForScreenShot.targetTexture.width, cameraForScreenShot.targetTexture.height), 0, 0);
    tmpTexture2D.Apply();
    File.WriteAllBytes(path, tmpTexture2D.EncodeToPNG());
    Destroy(tmpTexture2D);
    RenderTexture.active = oldT;
    cameraForScreenShot.targetTexture = null;
    RenderTexture.ReleaseTemporary(renderTextureTmp);
    

    成功拯救图片!

  • 相关阅读:
    Python(条件判断和循环)
    大端还是小端
    c语言程序设计 字符串拷贝拷贝演变与初衷
    内存 匹配串
    多态 C2
    多态 C1
    判断是否存在不合法字符(C++)
    va_start、vsprintf、va_end
    java中instanceof用法
    c++ vector相关
  • 原文地址:https://www.cnblogs.com/yaoling1997/p/13946437.html
Copyright © 2011-2022 走看看