Tire uma captura de tela da câmera especificada no Unity e converta a imagem em Base64

Histórico do problema:

O requisito é apenas cortar a cena, não incluir a interface do usuário e salvar a captura de tela no formato Base64 na exibição na Web.

Esquema:

Especifique a captura de tela da câmera:

1  ///  <summary> 
2          /// 相机 相机 截
 / 3          ///  </summary> 
4          ///  <param name = "camera"> </param> 
5          ///  <param name = "rect"> </param> 
6          ///  <returns> </returns> 
7          byte público  [] CaptureScreen (câmera da câmera, Rect rect)
 8         {
 9              RenderTexture rt = nova RenderTexture (camera.pixelWidth, camera.pixelHeight, 0 );
10 11              camera.targetTexture = rt;
12             camera.Render ();
  
  
14              RenderTexture.active = rt;
15              Texture2D screenShot = new Texture2D (camera.pixelWidth, camera.pixelHeight, TextureFormat.RGBA32, false );
16  
17              screenShot.ReadPixels (rect, 0 , 0 );
18              screenShot.Apply ();
19  
20              camera.targetTexture = nulo ;
21              RenderTexture.active = nulo ;
22              GameObject.Destroy (rt);
23  
bytes 24              [] bytes =screenShot.EncodeToPNG ();
25  
26              bytes de retorno ;
27          }

Não escrevi para a memória aqui, porque não preciso, carreguei diretamente.

A transferência para Base64 é muito simples:

1   ///  <summary> 
2          /// 图片 Base64
 3          ///  </summary> 
4          ///  <param name = "bytesArr"> </param> 
5          ///  <returns> </returns> 
6          public String Texture2DToBase64 ( byte [] bytesArr)
 7          {
 8              string strbaser64 = Convert.ToBase64String (bytesArr);
9  
10              strbaser64 de retorno ;
11          }

Base64:

Um dos métodos de codificação mais comuns usados ​​para transmitir código de bytes de 8 bits na rede , a codificação Base64 é um processo de binário para caractere, que pode ser usado para transferir informações de identificação mais longas no ambiente HTTP . A codificação Base64 é ilegível e só pode ser lida após a decodificação. O Base64 é amplamente utilizado em vários campos de computadores devido às vantagens acima, (Enciclopédia)

 

Exemplo de captura de tela:

 

Acho que você gosta

Origin www.cnblogs.com/answer-yj/p/12675192.html
Recomendado
Clasificación