Trabalhando com imagens
A classe Nette\Utils\Image simplifica a manipulação de imagens, como redimensionamento, recorte, nitidez, desenho ou combinação de várias imagens.
O PHP possui um extenso conjunto de funções para manipulação de imagens. Mas a sua API não é muito conveniente. Não seria o Nette Framework se não viesse com uma API sexy.
Instalação:
composer require nette/utils
Todos os exemplos assumem que um alias foi criado:
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Criação de imagem
Criamos uma nova imagem true color, por exemplo, com dimensões 100×200:
$image = Image::fromBlank(100, 200);
Opcionalmente, pode-se especificar a cor de fundo (o padrão é preto):
$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));
Ou carregamos a imagem de um arquivo:
$image = Image::fromFile('nette.jpg');
Salvando a imagem
A imagem pode ser salva em um arquivo:
$image->save('resampled.jpg');
Podemos especificar a qualidade da compressão na faixa de 0..100 para JPEG (padrão 85), WEBP (padrão 80) e AVIF (padrão 30) e 0..9 para PNG (padrão 9):
$image->save('resampled.jpg', 80); // JPEG, qualidade 80%
Se o formato não for óbvio pela extensão do arquivo, ele pode ser especificado por uma constante:
$image->save('resampled.tmp', null, ImageType::JPEG);
A imagem pode ser escrita em uma variável em vez de no disco:
$data = $image->toString(ImageType::JPEG, 80); // JPEG, qualidade 80%
ou enviada diretamente para o navegador com o cabeçalho HTTP Content-Type
apropriado:
// envia o cabeçalho Content-Type: image/png
$image->send(ImageType::PNG);
Formatos
Os formatos suportados são JPEG, PNG, GIF, WebP, AVIF e BMP, no entanto, eles também devem ser suportados pela sua versão do PHP, o que pode ser verificado com a função isTypeSupported(). Animações não são suportadas.
O formato é representado pelas constantes ImageType::JPEG
, ImageType::PNG
,
ImageType::GIF
, ImageType::WEBP
, ImageType::AVIF
e ImageType::BMP
.
$supported = Image::isTypeSupported(ImageType::JPEG);
Precisa detectar o formato da imagem ao carregar? O método o retorna no segundo parâmetro:
$image = Image::fromFile('nette.jpg', $type);
A detecção por si só, sem carregar a imagem, é feita por Image::detectTypeFromFile()
.
Redimensionamento
Uma operação comum é redimensionar a imagem. As dimensões atuais são retornadas pelos métodos getWidth()
e
getHeight()
.
O método resize()
é usado para a alteração. Exemplo de redimensionamento proporcional para que não exceda as
dimensões de 500×300 pixels (ou a largura será exatamente 500 px ou a altura será exatamente 300 px, uma das dimensões
será calculada para manter a proporção):
$image->resize(500, 300);
É possível especificar apenas uma dimensão e a outra será calculada:
$image->resize(500, null); // largura 500px, altura será calculada
$image->resize(null, 300); // largura será calculada, altura 300px
Qualquer dimensão também pode ser especificada em porcentagem:
$image->resize('75%', 300); // 75 % × 300px
O comportamento de resize
pode ser influenciado pelos seguintes flags. Todos, exceto Image::Stretch
,
mantêm a proporção.
Flag | Descrição |
---|---|
Image::OrSmaller (padrão) |
as dimensões resultantes serão menores ou iguais às dimensões solicitadas |
Image::OrBigger |
preenche (e possivelmente excede em uma dimensão) a área de destino |
Image::Cover |
preenche a área de destino e recorta o que exceder |
Image::ShrinkOnly |
apenas redução (evita o esticamento de uma imagem pequena) |
Image::Stretch |
não manter a proporção |
Os flags são especificados como o terceiro argumento da função:
$image->resize(500, 300, Image::OrBigger);
Os flags podem ser combinados:
$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);
As imagens podem ser invertidas verticalmente ou horizontalmente especificando uma das dimensões (ou ambas) como um número negativo:
$flipped = $image->resize(null, '-100%'); // inverter verticalmente
$flipped = $image->resize('-100%', '-100%'); // rotacionar 180°
$flipped = $image->resize(-125, 500); // redimensionar e inverter horizontalmente
Após reduzir a imagem, é possível melhorar sua aparência com uma leve nitidez:
$image->sharpen();
Recorte
O método crop()
é usado para recortar:
$image->crop($left, $top, $width, $height);
Assim como em resize()
, todos os valores podem ser especificados em porcentagens. As porcentagens para
$left
e $top
são calculadas a partir do espaço restante, semelhante à propriedade CSS
background-position
:
$image->crop('100%', '50%', '80%', '80%');
A imagem também pode ser recortada automaticamente, por exemplo, recortando as bordas pretas:
$image->cropAuto(IMG_CROP_BLACK);
O método cropAuto()
é um substituto orientado a objetos para a função imagecropauto()
, você
pode encontrar mais informações em sua documentação.
Cores
O método ImageColor::rgb()
permite definir uma cor usando os valores de vermelho, verde e azul (RGB).
Opcionalmente, você também pode especificar o valor de transparência na faixa de 0 (totalmente transparente) a 1 (totalmente
opaco), assim como no CSS.
$color = ImageColor::rgb(255, 0, 0); // Vermelho
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Azul semitransparente
O método ImageColor::hex()
permite definir uma cor usando o formato hexadecimal, semelhante ao CSS. Suporta os
formatos #rgb
, #rrggbb
, #rgba
e #rrggbbaa
:
$color = ImageColor::hex("#F00"); // Vermelho
$transparentGreen = ImageColor::hex("#00FF0080"); // Verde semitransparente
As cores podem ser usadas em outros métodos, como ellipse()
, fill()
, etc.
Desenho e edições
Você pode desenhar e escrever. Todas as funções PHP para trabalhar com imagens estão disponíveis para você, veja Přehled metod, mas em um invólucro orientado a objetos:
$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));
Como as funções PHP para desenhar retângulos são impraticáveis devido à especificação de coordenadas, a classe
Image
oferece substitutos na forma das funções rectangleWH() e filledRectangleWH().
Combinação de múltiplas imagens
É fácil inserir outra imagem em uma imagem:
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// as coordenadas podem ser especificadas novamente em porcentagens
$blank->place($logo, '80%', '80%'); // inserimos perto do canto inferior direito
Ao inserir, o canal alfa é respeitado, além disso, podemos influenciar a transparência da imagem inserida (criamos a chamada marca d'água):
$blank->place($image, '80%', '80%', 25); // a transparência é de 25%
É realmente um prazer usar essa API!
Visão geral dos métodos
static fromBlank (int $width, int $height, ?ImageColor $color=null): Image
Cria uma nova imagem true color das dimensões fornecidas. A cor padrão é preta.
static fromFile (string $file, int &$detectedFormat=null): Image
Carrega uma imagem de um arquivo e retorna seu tipo em $detectedFormat
.
static fromString (string $s, int &$detectedFormat=null): Image
Carrega uma imagem de uma string e retorna seu tipo em $detectedFormat
.
static rgb (int $red, int $green, int $blue, int $transparency=0): array
Esta função foi substituída pela classe ImageColor
, veja cores.
static typeToExtension (int $type): string
Retorna a extensão do arquivo para o tipo fornecido.
static typeToMimeType (int $type): string
Retorna o tipo mime para o tipo fornecido.
static extensionToType (string $extension): int
Retorna o tipo da imagem com base na extensão do arquivo.
static detectTypeFromFile (string $file, int &$width=null, int &$height=null): ?int
Retorna o tipo da imagem e, nos parâmetros $width
e $height
, também
suas dimensões.
static detectTypeFromString (string $s, int &$width=null, int &$height=null): ?int
Retorna o tipo da imagem a partir de uma string e, nos parâmetros $width
e
$height
, também suas dimensões.
static isTypeSupported (int $type): bool
Verifica se o tipo de imagem fornecido é suportado.
static getSupportedTypes(): array
Retorna um array dos tipos de imagem suportados.
static calculateTextBox (string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array
Calcula as dimensões do retângulo que envolve o texto em uma determinada fonte e tamanho. Retorna um array associativo
contendo as chaves left
, top
, width
, height
. A margem esquerda pode ser
negativa se o texto começar com um kerning esquerdo.
affine (array $affine, ?array $clip=null): Image
Retorna uma imagem contendo a imagem src transformada afinamente usando uma área de recorte opcional. (mais).
affineMatrixConcat (array $m1, array $m2): array
Retorna a concatenação de duas matrizes de transformação afim, o que é útil se várias transformações devem ser aplicadas à mesma imagem de uma vez. (mais)
affineMatrixGet (int $type, ?mixed $options=null): array
Retorna uma matriz de transformação afim. (mais)
alphaBlending (bool $on): void
Permite dois modos diferentes de desenho em imagens truecolor. No modo de mesclagem, o componente do canal alfa da cor usada
em todas as funções de desenho, como setPixel()
, determina até que ponto a cor base deve ser permitida a
transparecer. Como resultado, a cor existente neste ponto é automaticamente misturada com a cor desenhada e o resultado é salvo
na imagem. O pixel resultante é opaco. No modo sem mesclagem, a cor desenhada é copiada literalmente com as informações do
canal alfa e substitui o pixel de destino. O modo de mesclagem não está disponível ao desenhar em imagens de paleta. (mais)
antialias (bool $on): void
Ativa o desenho de linhas e polígonos suavizados. Não suporta canais alfa. Funciona apenas com imagens truecolor.
O uso de primitivas suavizadas com uma cor de fundo transparente pode resultar em alguns resultados inesperados. O método de mesclagem usa a cor de fundo como todas as outras cores. (mais)
arc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Desenha um arco de círculo centrado nas coordenadas fornecidas. (mais)
colorAllocate (int $red, int $green, int $blue): int
Retorna um identificador de cor representando a cor composta pelos componentes RGB fornecidos. Deve ser chamado para criar cada cor a ser usada na imagem. (mais)
colorAllocateAlpha (int $red, int $green, int $blue, int $alpha): int
Comporta-se da mesma forma que colorAllocate()
com a adição do parâmetro de transparência $alpha
.
(mais)
colorAt (int $x, int $y): int
Retorna o índice da cor do pixel na localização especificada na imagem. Se a imagem for truecolor, esta função retorna o valor RGB desse pixel como um inteiro. Use deslocamento de bits e mascaramento de bits para acessar os valores dos componentes vermelho, verde e azul separadamente: (mais)
colorClosest (int $red, int $green, int $blue): int
Retorna o índice da cor na paleta da imagem que está “mais próxima” do valor RGB especificado. A “distância” entre a cor desejada e cada cor na paleta é calculada como se os valores RGB representassem pontos em um espaço tridimensional. (mais)
colorClosestAlpha (int $red, int $green, int $blue, int $alpha): int
Retorna o índice da cor na paleta da imagem que está “mais próxima” do valor RGB especificado e do nível
$alpha
. (mais)
colorClosestHWB (int $red, int $green, int $blue): int
Obtém o índice da cor que tem a matiz, o branco e o preto mais próximos da cor fornecida. (mais)
colorDeallocate (int $color): void
Desaloca uma cor previamente alocada usando colorAllocate()
ou colorAllocateAlpha()
. (mais)
colorExact (int $red, int $green, int $blue): int
Retorna o índice da cor especificada na paleta da imagem. (mais)
colorExactAlpha (int $red, int $green, int $blue, int $alpha): int
Retorna o índice da cor especificada + alfa na paleta da imagem. (mais)
colorMatch (Image $image2): void
Corresponde as cores da paleta à segunda imagem. (mais)
colorResolve (int $red, int $green, int $blue): int
Retorna um índice de cor para a cor solicitada, seja a cor exata ou a alternativa mais próxima possível. (mais)
colorResolveAlpha (int $red, int $green, int $blue, int $alpha): int
Retorna um índice de cor para a cor solicitada, seja a cor exata ou a alternativa mais próxima possível. (mais)
colorSet (int $index, int $red, int $green, int $blue): void
Define o índice especificado na paleta para a cor especificada. (mais)
colorsForIndex (int $index): array
Obtém a cor para um índice especificado. (mais)
colorsTotal(): int
Retorna o número de cores na paleta de imagens. (mais)
colorTransparent (?int $color=null): int
Obtém ou define a cor transparente na imagem. (mais)
convolution (array $matrix, float $div, float $offset): void
Aplica uma matriz de convolução na imagem, usando o coeficiente e o deslocamento fornecidos. (mais)
Requer a presença da Extensão GD Agrupada, portanto, pode não funcionar em todos os lugares.
copy (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void
Copia parte de $src
para a imagem começando nas coordenadas $srcX
, $srcY
com largura
$srcW
e altura $srcH
. A parte definida será copiada para as coordenadas $dstX
e
$dstY
. (mais)
copyMerge (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
Copia parte de $src
para a imagem começando nas coordenadas $srcX
, $srcY
com largura
$srcW
e altura $srcH
. A parte definida será copiada para as coordenadas $dstX
e
$dstY
. (mais)
copyMergeGray (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
Copia parte de $src
para a imagem começando nas coordenadas $srcX
, $srcY
com largura
$srcW
e altura $srcH
. A parte definida será copiada para as coordenadas $dstX
e
$dstY
.
Esta função é idêntica a copyMerge()
com a exceção de que, ao mesclar, preserva a matiz da fonte convertendo
os pixels de destino para escala de cinza antes da operação de cópia. (mais)
copyResampled (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Copia uma porção retangular de uma imagem para outra imagem, interpolando suavemente os valores dos pixels para que, em particular, a redução do tamanho de uma imagem ainda retenha grande clareza.
Em outras palavras, copyResampled()
pega uma área retangular de $src
de largura $srcW
e
altura $srcH
na posição ($srcX
, $srcY
) e a coloca em uma área retangular da imagem de
largura $dstW
e altura $dstH
na posição ($dstX
, $dstY
).
Se as coordenadas de origem e destino, largura e altura diferirem, um alongamento ou encolhimento apropriado do fragmento da imagem será realizado. As coordenadas referem-se ao canto superior esquerdo. Esta função pode ser usada para copiar regiões dentro da mesma imagem, mas se as regiões se sobrepuserem, os resultados serão imprevisíveis. (mais)
copyResized (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Copia uma porção retangular de uma imagem para outra imagem. Em outras palavras, copyResized()
pega uma área
retangular de $src
de largura $srcW
e altura $srcH
na posição ($srcX
,
$srcY
) e a coloca em uma área retangular da imagem de largura $dstW
e altura $dstH
na
posição ($dstX
, $dstY
).
Se as coordenadas de origem e destino, largura e altura diferirem, um alongamento ou encolhimento apropriado do fragmento da imagem será realizado. As coordenadas referem-se ao canto superior esquerdo. Esta função pode ser usada para copiar regiões dentro da mesma imagem, mas se as regiões se sobrepuserem, os resultados serão imprevisíveis. (mais)
crop (int|string $left, int|string $top, int|string $width, int|string $height): Image
Recorta uma imagem para a área retangular fornecida. As dimensões podem ser especificadas como inteiros em pixels ou strings
em porcentagens (por exemplo, '50%'
).
cropAuto (int $mode=-1, float $threshold=.5, ?ImageColor $color=null): Image
Recorta automaticamente uma imagem de acordo com o $mode
fornecido. (mais)
ellipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Desenha uma elipse centrada nas coordenadas especificadas. (mais)
fill (int $x, int $y, ImageColor $color): void
Preenche uma região começando na coordenada fornecida (canto superior esquerdo é 0, 0) com a $color
fornecida.
(mais)
filledArc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void
Desenha um arco parcial centrado nas coordenadas especificadas. (mais)
filledEllipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Desenha uma elipse preenchida centrada nas coordenadas especificadas. (mais)
filledPolygon (array $points, ImageColor $color): void
Cria um polígono preenchido na imagem. (mais)
filledRectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Cria um retângulo preenchido com $color
na imagem começando no ponto $x1
& $y1
e
terminando no ponto $x2
& $y2
. O ponto 0, 0 é o canto superior esquerdo da imagem. (mais)
filledRectangleWH (int $left, int $top, int $width, int $height, ImageColor $color): void
Cria um retângulo preenchido com $color
na imagem começando no ponto $left
& $top
com largura $width
e altura $height
. O ponto 0, 0 é o canto superior esquerdo da imagem.
fillToBorder (int $x, int $y, int $border, ImageColor $color): void
Realiza um preenchimento cuja cor da borda é definida por $border
. O ponto inicial para o preenchimento é
$x
, $y
(canto superior esquerdo é 0, 0) e a região é preenchida com a cor $color
. (mais)
filter (int $filtertype, int …$args): void
Aplica o filtro $filtertype
fornecido à imagem. (mais)
flip (int $mode): void
Inverte a imagem usando o $mode
fornecido. (mais)
ftText (float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Escreve texto na imagem. (mais)
gammaCorrect (float $inputgamma, float $outputgamma): void
Aplica correção gama à imagem em relação ao gama de entrada e saída. (mais)
getClip(): array
Retorna o recorte atual, ou seja, a área além da qual nenhum pixel será desenhado. (mais)
getHeight(): int
Retorna a altura da imagem.
getImageResource(): resource|GdImage
Retorna o recurso original.
getWidth(): int
Retorna a largura da imagem.
interlace (?int $interlace=null): int
Ativa ou desativa o modo entrelaçado. Se o modo entrelaçado estiver definido e a imagem for salva como JPEG, ela será salva como JPEG progressivo. (mais)
isTrueColor(): bool
Verifica se a imagem é truecolor. (mais)
layerEffect (int $effect): void
Define o sinalizador de mesclagem alfa para usar efeitos de camadas. (mais)
line (int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Desenha uma linha entre dois pontos fornecidos. (mais)
openPolygon (array $points, ImageColor $color): void
Desenha um polígono aberto na imagem. Ao contrário de polygon()
, nenhuma linha é desenhada entre o último e
o primeiro ponto. (mais)
paletteCopy (Image $source): void
Copia a paleta de $source
para a imagem. (mais)
paletteToTrueColor(): void
Converte uma imagem baseada em paleta em uma imagem truecolor. (mais)
place (Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image
Copia $image
para a imagem nas coordenadas $left
e $top
. As coordenadas podem ser
especificadas como inteiros em pixels ou strings em porcentagens (por exemplo, '50%'
).
polygon (array $points, ImageColor $color): void
Cria um polígono na imagem. (mais)
rectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Cria um retângulo nas coordenadas especificadas. (mais)
rectangleWH (int $left, int $top, int $width, int $height, ImageColor $color): void
Cria um retângulo nas coordenadas especificadas.
resize (int|string $width, int|string $height, int $flags=Image::OrSmaller): Image
Redimensiona a imagem, mais informações. As dimensões podem ser especificadas como
inteiros em pixels ou strings em porcentagens (por exemplo, '50%'
).
resolution (?int $resX=null, ?int $resY=null): mixed
Define ou retorna a resolução da imagem em DPI (pontos por polegada). Se nenhum dos parâmetros opcionais for especificado, a
resolução atual é retornada como um array indexado. Se apenas $resX
for especificado, as resoluções horizontal e
vertical são definidas para este valor. Se ambos os parâmetros opcionais forem especificados, as resoluções horizontal e
vertical são definidas para esses valores.
A resolução é usada apenas como metainformação quando as imagens são lidas e escritas em formatos que suportam este tipo de informação (atualmente PNG e JPEG). Não afeta nenhuma operação de desenho. A resolução padrão para novas imagens é 96 DPI. (mais)
rotate (float $angle, int $backgroundColor): Image
Rotaciona a imagem usando o $angle
especificado em graus. O centro de rotação é o centro da imagem e a imagem
rotacionada pode ter dimensões diferentes da imagem original. (mais)
Requer a presença da Extensão GD Agrupada, portanto, pode não funcionar em todos os lugares.
save (string $file, ?int $quality=null, ?int $type=null): void
Salva a imagem em um arquivo.
A qualidade da compressão está na faixa de 0..100 para JPEG (padrão 85), WEBP (padrão 80) e AVIF (padrão 30) e
0..9 para PNG (padrão 9). Se o tipo não for óbvio pela extensão do arquivo, você pode especificá-lo usando uma das
constantes ImageType
.
saveAlpha (bool $saveflag): void
Define o sinalizador se deve preservar informações completas do canal alfa ao salvar imagens PNG (em oposição à transparência de cor única).
A mesclagem alfa deve ser desativada (alphaBlending(false)
) para que o canal alfa seja mantido em primeiro
lugar. (mais)
scale (int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image
Escala uma imagem usando o algoritmo de interpolação fornecido. (mais)
send (int $type=ImageType::JPEG, ?int $quality=null): void
Envia a imagem para o navegador.
A qualidade da compressão está na faixa de 0..100 para JPEG (padrão 85), WEBP (padrão 80) e AVIF (padrão 30) e 0..9 para PNG (padrão 9).
setBrush (Image $brush): void
Define a imagem do pincel a ser usada em todas as funções de desenho de linha (como line()
e
polygon()
) ao desenhar com as cores especiais IMG_COLOR_BRUSHED ou IMG_COLOR_STYLEDBRUSHED. (mais)
setClip (int $x1, int $y1, int $x2, int $y2): void
Define o recorte atual, ou seja, a área além da qual nenhum pixel será desenhado. (mais)
setInterpolation (int $method=IMG_BILINEAR_FIXED): void
Define o método de interpolação, que afeta os métodos rotate()
e affine()
. (mais)
setPixel (int $x, int $y, ImageColor $color): void
Desenha um pixel na coordenada especificada. (mais)
setStyle (array $style): void
Define o estilo a ser usado por todas as funções de desenho de linha (como line()
e polygon()
) ao
desenhar com a cor especial IMG_COLOR_STYLED ou linhas de imagens com a cor IMG_COLOR_STYLEDBRUSHED. (mais)
setThickness (int $thickness): void
Define a espessura das linhas ao desenhar retângulos, polígonos, arcos, etc. para $thickness
pixels. (mais)
setTile (Image $tile): void
Define a imagem do ladrilho a ser usada em todas as funções de preenchimento de região (como fill()
e
filledPolygon()
) ao preencher com a cor especial IMG_COLOR_TILED.
Um ladrilho é uma imagem usada para preencher uma área com um padrão repetido. Qualquer imagem pode ser usada como ladrilho
e, definindo o índice de cor transparente da imagem do ladrilho com colorTransparent()
, pode-se criar um ladrilho
onde certas partes da área subjacente transparecerão. (mais)
sharpen(): Image
Torna a imagem mais nítida.
Requer a presença da Extensão GD Agrupada, portanto, pode não funcionar em todos os lugares.
toString (int $type=ImageType::JPEG, ?int $quality=null): string
Salva a imagem em uma string.
A qualidade da compressão está na faixa de 0..100 para JPEG (padrão 85), WEBP (padrão 80) e AVIF (padrão 30) e 0..9 para PNG (padrão 9).
trueColorToPalette (bool $dither, int $ncolors): void
Converte uma imagem truecolor em uma imagem de paleta. (mais)
ttfText (float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Imprime o texto fornecido na imagem. (mais)