# dxGetTexturePixels (Cliente)

> Lê os pixels de uma imagem e os entrega a uma função, alguns quadros depois.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Cliente
- **Categoria**: Desenho na tela
- **URL**: https://wiki.mymp.gg/pt/dxGetTexturePixels

## Sintaxe

```lua
bool dxGetTexturePixels(texture|dui texture, function callback [, string format = plain, string textureFormat = unknown, bool mipmaps = true, int x, y = 0, 0, int width, height = 0, 0])
```

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `texture` | `texture\|dui` | A imagem: textura, render target, screen source ou dui. Uma textura de txd também serve. |
| `format` | `string` | Formato: `plain`, `png`, `jpeg` ou `dds`. *(padrão: `plain`)* |
| `textureFormat` | `string` | Para `dds`: `unknown` (o da imagem), `argb`, `xrgb`, `rgb`, `dxt1`, `dxt2`, `dxt3`, `dxt4` ou `dxt5`. Só pode vir depois de `format`. *(padrão: `unknown`)* |
| `mipmaps` | `bool` | Para `dds`: gera mipmaps. Só pode vir depois de `format`. *(padrão: `true`)* |
| `x, y` | `int` | Canto superior esquerdo da área lida, em pixels. Aceita também um vec2. *(padrão: `0, 0`)* |
| `width, height` | `int` | Tamanho da área lida. Com altura 0, lê a imagem inteira. Aceita também um vec2. *(padrão: `0, 0`)* |
| `callback` | `function` | Recebe os pixels como string, ou `false` se a leitura falhou. |

## Retorno

`true` se a leitura começou, `false` se a imagem ainda não tem conteúdo.

Um número no começo (o índice de superfície do MTA) é aceito e ignorado. Pixels `plain` são 4 bytes por pixel (azul, verde, vermelho, alfa), linha a linha, seguidos da largura e da altura em 2 bytes cada.

## Exemplo

```lua
local target = dxCreateRenderTarget(256, 256, true)

dxGetTexturePixels(target, "png", function(pixels)
    if not pixels then return end
    local file = fileCreate("snapshot.png")
    fileWrite(file, pixels)
    fileClose(file)
end)
```

### Vindo do MTA

No MTA os pixels são devolvidos na hora. No MYMP eles chegam numa função, porque a leitura da placa de vídeo leva alguns quadros.

## Veja também

- [dxSetTexturePixels (Cliente)](https://wiki.mymp.gg/pt/dxSetTexturePixels.md): Escreve pixels numa textura criada por script ou num render target.
- [dxConvertPixels (Cliente)](https://wiki.mymp.gg/pt/dxConvertPixels.md): Converte uma imagem guardada numa string para outro formato, em segundo plano, e entrega o resultado a uma função.
- [dxGetPixelColor (Cliente)](https://wiki.mymp.gg/pt/dxGetPixelColor.md): Lê a cor de um pixel de uma imagem em plain.
- [engineGetTxdTexture (Cliente)](https://wiki.mymp.gg/pt/engineGetTxdTexture.md): Dá um elemento texture que mostra o que um txd mostra sob um nome de textura, para desenhá-lo ou usá-lo como fonte.
