We develop an application on Unity3D which shall take the image from the screen and transfer it to Texture2D.
We have difficulties with performance on everage (feeble) devices.
The code is given below. We do a screenshot, then we read pixels (ReadPixels) - here the problem arises, an app runs terribly slow.
We tried to take the texture from the camera, but it doesn’t work because our scanner works in parallel with Kudan, and in turn it blocks access to the camera. Then we tried to limit the area of screen to scan (by taking for scanning a small window, but not full screen) - but there wasn’t visible increase in the performance.
Can anyone help with this?
Here is our code:
IEnumerator DecodeScreen()
{
yield return new WaitForEndOfFrame();
RenderTexture RT = new RenderTexture(Screen.width, Screen.height,24);
Texture2D screen = new Texture2D(RT.width, RT.height, TextureFormat.RGB24, false, false);
screen.ReadPixels(new Rect(0, 0, RT.width, RT.height), 0, 0);
screen.Apply();
Debug.Log(resultText.text);
GetComponent().targetTexture = null;
Destroy(RT);
}