2013-07-23 2 views
0

В моем проекте мне нужно получить яркость экрана, который отображается. чтобы сделать это, я получить снимок экрана и сделать его как Texture2DПолучение яркости отображаемого экрана или Texture2D - Unity3D

Чтобы получить снимок и преобразовать его я использую это:

public void GetScreen(ref Texture2D screenShot){ 
     RenderTexture rt = new RenderTexture(Screen.Width, Screen.Height, 24); 
     camera.targetTexture = rt; 
     screenShot = new Texture2D(Screen.Width, Screen.Height, TextureFormat.RGB24, false); 
     camera.Render(); 
     RenderTexture.active = rt; 
     screenShot.ReadPixels(new Rect(0, 0, Sreen.Width, Screen.Height), 0, 0); 
     camera.targetTexture = null; 
     RenderTexture.active = null; 
     Destroy(rt); 
} 

, но мне еще нужно, чтобы получить яркость.
Любые предложения будут приниматься (о яркости и/или о преобразовании).
Спасибо заранее.

ответ

0

После того, как у вас есть пиксели, следующий шаг является использование получить пиксели на изображении, чтобы попробовать некоторые из них и построить яркость из них: http://docs.unity3d.com/Documentation/ScriptReference/Texture2D.GetPixel.html

Определения яркости является немного сложным вопросом, так это действительно зависит от вашего приложения. Formula to determine brightness of RGB color имеет методы определения яркости одного пикселя. Вы можете отбирать несколько пикселей в центр вашего изображения, а затем брать среднее значение из них.

Если вам нужно более сложное решение, вы можете построить гистограмму яркости пикселей, а затем найти пик. http://en.wikipedia.org/wiki/Image_histogram.

Смежные вопросы