Instalação • Visão geral • Script de exemplo • Ler ou gravar uma imagem • Manipular uma imagem • Definir atributos de imagem • Obter atributos de imagem • Comparar uma imagem com sua reconstrução • Criar uma montagem de imagens • Trabalhar com Blobs • Acesso direto aos pixels da imagem • Outros métodos • Tratamento de exceções • Constantes
O PerlMagick é uma interface Perl orientada a objetos para o ImageMagick. Use o módulo para ler, manipular ou gravar uma imagem ou sequência de imagens a partir de um script Perl. Isso o torna muito adequado para scripts CGI da Web. Para que o PerlMagick compile corretamente, você precisa ter o ImageMagick 6.5.5 ou superior e o Perl versão 5.005_02 ou superior instalados no seu sistema.
Há vários scripts úteis disponíveis que mostram o valor do PerlMagick. Você pode fazer manipulação e conversão de imagens baseadas na Web com o MagickStudio, ou usar L-systems para criar imagens de plantas usando construções matemáticas, e ainda navegar por coleções de miniaturas e selecionar a imagem a ser visualizada com o WebMagick Image Navigator.
Você pode experimentar o PerlMagick a partir do seu navegador Web no ImageMagick Studio. Ou pode ver exemplos de funções selecionadas do PerlMagick.
Instalação
UNIX
O PerlMagick está disponível no repositório RPM do seu sistema? Por exemplo, no nosso sistema CentOS, instalamos o PerlMagick assim:
yum install ImageMagick-perl
Se não estiver, você precisa instalar o PerlMagick a partir da distribuição de código-fonte do ImageMagick. Baixe a versão mais recente do código-fonte.
Descompacte a distribuição com este comando:
tar xvzf ImageMagick.tar.gz
Em seguida, configure e compile o ImageMagick:
cd ImageMagick-7.1.2-25
./configure -with-perl
make
Se o ImageMagick / PerlMagick foi configurado e compilado sem reclamações, você está pronto para instalá-lo no seu sistema. São necessários privilégios de administrador para instalar. Para instalar, digite
sudo make install
Talvez seja necessário configurar as ligações em tempo de execução do vinculador dinâmico:
sudo ldconfig /usr/local/lib
Por fim, para verificar se a instalação do PerlMagick funcionou corretamente, digite
perl -MImage::Magick -le 'print Image::Magick->QuantumDepth'
Parabéns, você tem uma distribuição funcional do ImageMagick e está pronto para usar o PerlMagick para converter, compor ou editar suas imagens.
Windows XP / Windows 2000
O ImageMagick já deve estar instalado no seu sistema. Além disso, é necessária a distribuição de código-fonte do ImageMagick para Windows 2000. Você também precisa do nmake do ambiente de desenvolvimento Visual C++ ou J++. Copie \bin\IMagick.dll e \bin\X11.dll para um diretório no seu caminho de carregamento dinâmico, como c:\perl\site\5.00502.
Em seguida, digite
cd PerlMagick
perl Makefile.nt
nmake
nmake install
Executando os testes de regressão
Para verificar uma instalação correta, digite
make test
No Windows, use nmake test. Há alguns scripts de demonstração disponíveis para exercitar muitas das funções que o PerlMagick pode realizar.
Use o utilitário prove para executar um teste a partir da pasta de compilação:
prove --blib blib -I `pwd` -bv ./t/read.t
cd demo
make
Agora você está pronto para utilizar os métodos do PerlMagick a partir dos seus scripts Perl.
Visão geral
Qualquer script que queira usar métodos do PerlMagick deve primeiro definir os métodos dentro do seu namespace e instanciar um objeto de imagem. Faça isso com:
use Image::Magick;
$image = Image::Magick->new;
O PerlMagick reconhece quantum. Você pode solicitar uma profundidade de quantum específica ao instanciar um objeto de imagem:
use Image::Magick::Q16;
$image = Image::Magick::Q16->new;
O método new() aceita os mesmos parâmetros que SetAttribute. Por exemplo,
$image = Image::Magick->new(size=>'384x256');
Em seguida, você vai querer ler uma imagem ou sequência de imagens, manipulá-la e então exibi-la ou gravá-la. Os métodos de entrada e saída do PerlMagick estão definidos em "Ler ou gravar uma imagem". Consulte "Definir atributos de imagem" para os métodos que afetam a forma como uma imagem é lida ou gravada. Consulte "Manipular uma imagem" para obter uma lista de métodos que transformam uma imagem. "Obter atributos de imagem" descreve como recuperar um atributo de uma imagem. Consulte "Criar uma montagem de imagens" para detalhes sobre como dispor suas imagens em mosaico como miniaturas sobre um fundo. Por fim, alguns métodos não se encaixam perfeitamente em nenhuma das categorias mencionadas. Consulte "Outros métodos" para obter uma lista desses métodos.
Quando terminar de usar um objeto PerlMagick, considere destruí-lo. Cada imagem de uma sequência de imagens é armazenada em memória virtual. Isso pode somar potencialmente vários mebibytes de memória. Ao destruir um objeto PerlMagick, a memória é devolvida para uso por outros métodos do Perl. A forma recomendada de destruir um objeto é com undef:
undef $image;
Para excluir todas as imagens, mas manter o objeto Image::Magick, use
@$image = ();
e, por fim, para excluir uma única imagem de uma sequência de várias imagens, use
undef $image->[$x];
A próxima seção ilustra como usar vários métodos do PerlMagick para manipular uma sequência de imagens.
Alguns métodos do PerlMagick requerem programas externos como o Ghostscript. Isso pode exigir um caminho explícito na sua variável de ambiente PATH para funcionar corretamente. Por exemplo (no Linux),
$ENV{PATH}' . "='/../bin:/usr/bin:/usr/local/bin';
Script de exemplo
Aqui está um script de exemplo para você começar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
O script lê três imagens, recorta-as e grava uma única imagem como sequência de animação GIF. Em muitos casos, você pode querer acessar imagens individuais de uma sequência. O próximo exemplo ilustra como isso é feito:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Suponha que você queira começar com uma tela branca de 100 por 100 pixels com um pixel vermelho no centro. Tente
$image = Image::Magick->new;
$image->Set(size=>'100x100');
$image->ReadImage('canvas:white');
$image->Set('pixel[49,49]'=>'red');
Aqui reduzimos pela metade a intensidade do componente vermelho em (1,1):
@pixels = $image->GetPixel(x=>1,y=>1);
$pixels[0]*=0.5;
$image->SetPixel(x=>1,y=>1,color=>\@pixels);
Ou suponha que você queira converter sua imagem colorida para tons de cinza:
$image->Quantize(colorspace=>'gray');
Vamos anotar uma imagem com uma fonte TrueType de Taipei:
$text = 'Works like magick!';
$image->Annotate(font=>'kai.ttf', pointsize=>40, fill=>'green', text=>$text);
Talvez você queira extrair todas as intensidades de pixel de uma imagem e gravá-las em STDOUT:
@pixels = $image->GetPixels(map=>'I', height=>$height, width=>$width, normalize=>true);
binmode STDOUT;
print pack('B*',join('',@pixels));
Outras coisas engenhosas que você pode fazer com objetos PerlMagick incluem
$i = $#$p"+1"; # retorna o número de imagens associadas ao objeto p
push(@$q, @$p); # empurra as imagens do objeto p para o objeto q
@$p = (); # exclui as imagens, mas não o objeto p
$p->Convolve([1, 2, 1, 2, 4, 2, 1, 2, 1]); # kernel gaussiano 3x3
Ler ou gravar uma imagem
Use os métodos listados abaixo para ler, gravar ou exibir uma imagem ou sequência de imagens:
| Métodos de leitura e gravação Método | Parâmetros | Valor de retorno | Descrição |
|---|---|---|---|
| Read | one or more filenames | the number of images read | lê uma imagem ou sequência de imagens |
| Write | filename | the number of images written | grava uma imagem ou sequência de imagens |
| Display | server name | the number of images displayed | exibe a imagem ou sequência de imagens em um servidor X |
| Animate | server name | the number of images animated | anima a sequência de imagens em um servidor X |
Por conveniência, os métodos Write(), Display() e Animate() podem aceitar qualquer parâmetro que SetAttribute conheça. Por exemplo,
$image->Write(filename=>'image.png', compression=>'None');
Use - como nome de arquivo no método Read() para ler da entrada padrão ou no método Write() para gravar na saída padrão:
binmode STDOUT;
$image->Write('png:-');
Para ler uma imagem no formato GIF a partir de um filehandle do PERL, use:
$image = Image::Magick->new;
open(IMAGE, 'image.gif');
$image->Read(file=>\*IMAGE);
close(IMAGE);
Para gravar uma imagem no formato PNG em um filehandle do PERL, use:
$filename = "image.png";
open(IMAGE, ">$filename");
$image->Write(file=>\*IMAGE, filename=>$filename);
close(IMAGE);
Observe que a leitura ou gravação a partir de um filehandle do Perl pode falhar no Windows devido a versões diferentes das bibliotecas de tempo de execução C entre as distribuições do ImageMagick e do ActiveState Perl, ou se uma das DLLs for vinculada com a opção /MT. Consulte Potential Errors Passing CRT Objects Across DLL Boundaries para uma explicação.
Se %0Nd, %0No ou %0Nx aparecerem no nome do arquivo, eles são interpretados como uma especificação de formato printf, e a especificação é substituída pela codificação decimal, octal ou hexadecimal especificada do número da cena. Por exemplo,
image%03d.miff
converte os arquivos image000.miff, image001.miff, etc.
Você pode opcionalmente adicionar Image a qualquer nome de método. Por exemplo, ReadImage() é um alias para o método Read().
Manipular uma imagem
Depois de criar uma imagem com, por exemplo, o método ReadImage(), você pode querer operar sobre ela. Abaixo está uma lista de todos os métodos de manipulação de imagem disponíveis para você no PerlMagick. Há exemplos de métodos selecionados do PerlMagick. Aqui está um exemplo de chamada a um método de manipulação de imagem:
$image->Crop(geometry=>'100x100+10+20');
$image->[$x]->Frame("100x200");
E aqui está uma lista de outros métodos de manipulação de imagem que você pode chamar:
| Métodos de manipulação de imagem Método | Parâmetros | Descrição |
|---|---|---|
| AdaptiveBlur | geometry=>geometry , radius=>double , sigma=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | desfoca a imagem de forma adaptativa com um operador gaussiano de raio e desvio padrão (sigma) dados. Diminui o efeito perto das bordas. |
| AdaptiveResize | geometry=>geometry , width=>integer , height=>integer , filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double , blur=>double | redimensiona a imagem de forma adaptativa usando triangulação dependente dos dados. Especifique blur > 1 para desfocado ou < 1 para nítido |
| AdaptiveSharpen | geometry=>geometry , radius=>double , sigma=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | aguça a imagem de forma adaptativa com um operador gaussiano de raio e desvio padrão (sigma) dados. Aumenta o efeito perto das bordas. |
| AdaptiveThreshold | geometry=>geometry , width=>integer , height=>integer , bias=>double | limiarização adaptativa local. |
| AddNoise | noise=>{Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson}, attenuate=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | adiciona ruído a uma imagem |
| AffineTransform | affine=>array of float values , translate=>float, float , scale=> float, float , rotate=>float , skewX=>float , skewY=>float , interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, background=>color name | aplica uma transformação afim à imagem |
| Affinity | image=>image-handle , method=>{None, FloydSteinberg, Riemersma} | escolhe um conjunto específico de cores a partir desta imagem |
| Annotate | text=>string , font=>string , family=>string , style=>{Normal, Italic, Oblique, Any}, stretch=>{Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded}, weight=>integer , pointsize=>integer , density=>geometry , stroke=>color name , strokewidth=>integer , fill=>color name , undercolor=>color name , kerning=>float , geometry=>geometry , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, antialias=>{true, false}, x=>integer , y=>integer , affine=>array of float values , translate=>float, float , scale=>float, float , rotate=>float. skewX=>float , skewY=> float , align=>{Left, Center, Right}, encoding=>{UTF-8}, interline-spacing=>double , interword-spacing=>double , direction=>{right-to-left, left-to-right}, decorate=>{none, underline, overline, line-through}, word-break=>{normal, break-word} | anota uma imagem com texto. Consulte QueryFontMetrics para obter as métricas da fonte sem renderizar nenhum texto. |
| AutoGamma | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | ajusta automaticamente o nível de gama da imagem |
| AutoLevel | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | ajusta automaticamente os níveis de cor da imagem |
| AutoOrient | ajusta a imagem para que sua orientação seja adequada para visualização (ou seja, orientação superior-esquerda) | |
| AutoThreshold | method=>{Kapur, OTSU, Triangle} | realiza automaticamente a limiarização da imagem |
| BilateralSmoothing | geometry=>geometry , width=>integer , height=>integer , intensity-sigma=>double , spatial-sigma=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | um filtro de suavização não linear, preservador de bordas e redutor de ruído para imagens. Ele substitui a intensidade de cada pixel por uma média ponderada das intensidades dos pixels vizinhos. Esse peso baseia-se em uma distribuição gaussiana. Os pesos dependem não apenas da distância euclidiana dos pixels, mas também das diferenças radiométricas (por exemplo, diferenças de faixa, como intensidade de cor, distância de profundidade, etc.). Isso preserva bordas nítidas. Os valores padrão para os sigmas de intensidade e espacial são 2diâmetro e 0,5diâmetro, respectivamente. |
| BlackThreshold | threshold=>color , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | força todos os pixels abaixo da intensidade limiar para preto |
| BlueShift | factor=>double , | simula uma cena noturna ao luar. Comece com um fator de 1,5. |
| Blur | geometry=>geometry , radius=>double , sigma=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | reduz o ruído da imagem e os níveis de detalhe com um operador gaussiano de raio e desvio padrão (sigma) dados. |
| Border | geometry=>geometry , width=>integer , height=>integer , bordercolor=>color name , compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, | envolve a imagem com uma borda de cor |
| CannyEdge | geometry=>geometry , radius=>double , sigma=>double , 'lower-percent'=>double , 'upper-percent'=>double | usa um algoritmo de múltiplos estágios para detectar uma ampla gama de bordas na imagem (por exemplo, CannyEdge('0x1+10%+40%')). |
| Charcoal | geometry=>geometry , radius=>double , sigma=>double | simula um desenho a carvão |
| Chop | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | corta uma faixa da imagem |
| CLAHE | geometry=>geometry , width=>integer , height=>integer , number-bins=>integer , clip-limit=>double | equalização de histograma adaptativa com contraste limitado. width e height dividem a imagem em blocos. number-bins é o número de classes do histograma por bloco (mín. 2, máx. 256). clip-limit é o limite de contraste para mudanças locais de contraste. Um clip-limit de 2 a 3 é um bom ponto de partida. |
| Clamp | channel=>{Red, RGB, All, etc.} | define cada pixel cujo valor está abaixo de zero para zero e qualquer pixel cujo valor está acima da faixa de quantum para a faixa de quantum (por exemplo, 65535); caso contrário, o valor do pixel permanece inalterado. |
| Clip | id=>name , inside=>{true, false} , | aplica ao longo de um caminho nomeado do perfil 8BIM. |
| ClipMask | mask=>image-handle | recorta a imagem conforme definido pela máscara de imagem |
| Clut | image=>image-handle , interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, channel=>{Red, RGB, All, etc.} | aplica uma tabela de consulta de cores a uma sequência de imagens |
| Color | color=>color name | define toda a imagem para esta cor. |
| ColorDecisionList | filename=>string , | corrige a cor com uma lista de decisão de cores. |
| Colorize | fill=>color name , blend=>string | colore a imagem com a cor de preenchimento (fill) |
| ColorMatrix | matrix=>array of float values | aplica correção de cor à imagem. Embora você possa usar matrizes de tamanho variável, normalmente usa-se uma 5x5 para uma imagem RGBA e uma 6x6 para CMYKA. Uma matriz 6x6 é necessária para deslocamentos (preencha a última coluna com valores normalizados). |
| Colorspace | colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK} | define o espaço de cor da imagem |
| Comment | string | adiciona um comentário à sua imagem |
| ColorThreshold | start-color=>color , stop-color=>color , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | força todos os pixels abaixo da intensidade limiar para preto |
| CompareLayers | method=>{any, clear, overlay} | compara cada imagem com a seguinte em uma sequência e retorna a região delimitadora mínima de quaisquer diferenças de pixel que encontrar. As imagens não precisam ter o mesmo tamanho, embora seja melhor que todas estejam fundidas (coalesced) — todas do mesmo tamanho, sobre uma tela achatada, de modo a representar exatamente como um quadro específico deve aparecer. |
| Composite | image=>image-handle , compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, mask=>image-handle , geometry=>geometry , x=>integer , y=>integer , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, opacity=>integer , tile=>{True, False}, rotate=>double , color=>color name , blend=>geometry , interpolate=>{undefined, average, bicubic, bilinear, filter, integer, mesh, nearest-neighbor, spline}, clip-to-self=>{True, False} | compõe uma imagem sobre outra. Use o parâmetro rotate em conjunto com o parâmetro tile. |
| ConnectedComponents | connectivity=>integer , | rotula de forma única os componentes conexos; escolha entre conectividade de 4 ou 8 direções. |
| Contrast | sharpen=>{True, False} | realça ou reduz o contraste da imagem |
| ContrastStretch | levels=>string , 'black-point'=>double , 'white-point'=>double , channel=>{Red, RGB, All, etc.} | melhora o contraste de uma imagem "esticando" a faixa de valores de intensidade |
| Convolve | coefficients=>array of float values , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>double | aplica um kernel de convolução à imagem. Dada uma ordem (order) de kernel, você fornece order*order valores de ponto flutuante (por exemplo, 3x3 implica 9 valores). |
| CopyPixels | image=>image-handle , geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , offset=>geometry , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, dx=>integer , dy=>integer | copia os pixels da imagem definidos por widthxheight+x+y para a imagem no deslocamento +dx,+dy. |
| Crop | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , fuzz=>double , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | recorta uma imagem |
| CycleColormap | amount=>integer | desloca o mapa de cores da imagem em amount |
| Decipher | passphrase=>string | converte pixels cifrados em pixels em texto claro |
| Deconstruct | decompõe uma sequência de imagens em partes constituintes | |
| Deskew | geometry=>string ,threshold=>double | endireita a imagem |
| Despeckle | reduz as manchas (speckles) dentro de uma imagem | |
| Difference | image=>image-handle | calcula as métricas de diferença entre duas imagens |
| Distort | points=>array of float values , method=>{Affine, AffineProjection, ScaleRotateTranslate, SRT, Perspective, PerspectiveProjection, BilinearForward, BilinearReverse, Polynomial, Arc, Polar, DePolar, Barrel, BarrelInverse, Shepards, Resize}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}, 'best-fit'=>{True, False} | distorce a imagem |
| Draw | primitive=>{point, line, rectangle, arc, ellipse, circle, path, polyline, polygon, bezier, color, matte, text, @filename}, points=>string , method=>{Point, Replace, Floodfill, FillToBorder, Reset} , stroke=>color name , fill=>color name , font=>string , pointsize=>integer , strokewidth=>float , antialias=>{true, false}, bordercolor=>color name , x=>float , y=>float , dash-offset=>float , dash-pattern=>array of float values , affine=>array of float values , translate=>float, float , scale=>float, float , rotate=>float , skewX=>float , skewY=>float , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}, kerning=>float , text=>string , vector-graphics=>string , interline-spacing=>double , interword-spacing=>double , direction=>{right-to-left, left-to-right}, word-break=>{normal, break-word} | anota uma imagem com uma ou mais primitivas gráficas. |
| Encipher | passphrase=>string | converte pixels em texto claro em pixels cifrados |
| Edge | radius=>double | realça as bordas da imagem com um filtro de convolução do raio dado. |
| Emboss | geometry=>geometry , radius=>double , sigma=>double | aplica efeito de relevo (emboss) à imagem com um filtro de convolução de raio e desvio padrão (sigma) dados. |
| Enhance | aplica um filtro digital para realçar uma imagem ruidosa | |
| Equalize | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | realiza a equalização de histograma na imagem |
| Extent | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , fuzz=>double , background=>color name , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | define o tamanho da imagem |
| Evaluate | value=>double , operator=>{Add, And, Divide, LeftShift, Max, Min, Multiply, Or, Rightshift, RMS, Subtract, Xor} , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | aplica uma expressão aritmética, relacional ou lógica à imagem |
| Filter | kernel=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>double | aplica um kernel de convolução à imagem. |
| Flip | reflete as linhas de varredura da imagem na direção vertical | |
| Flop | reflete as linhas de varredura da imagem na direção horizontal | |
| FloodfillPaint | geometry=>geometry , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, x=>integer , y=>integer , fill=>color name , bordercolor=>color name , fuzz=>double , invert=>{True, False} | altera o valor de cor de qualquer pixel que corresponda à cor do pixel alvo e seja vizinho dele. Se você especificar uma cor de borda, o valor de cor é alterado para qualquer pixel vizinho que não seja dessa cor. |
| ForwardFourierTransform | magnitude=>{True, False} | implementa a transformada discreta de Fourier (DFT) direta |
| Frame | geometry=>geometry , width=>integer , height=>integer , inner=>integer , outer=>integer , fill=>color name , compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, | envolve a imagem com uma borda ornamental |
| Function | parameters=>array of float values , function=>{Sin}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} | aplica uma função à imagem |
| Gamma | gamma=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | corrige a gama da imagem |
| GaussianBlur | geometry=>geometry , radius=>double , sigma=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | reduz o ruído da imagem e os níveis de detalhe com um operador gaussiano de raio e desvio padrão (sigma) dados. |
| GetPixel | geometry=>geometry , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, normalize=>{true, false}, x=>integer , y=>integer | obtém um único pixel. Por padrão, são retornados valores de pixel normalizados. |
| GetPixels | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , map=>string , normalize=>{true, false} | obtém os pixels da imagem definidos pelo map (por exemplo, "RGB", "RGBA", etc.). Por padrão, são retornados valores de pixel não normalizados. |
| Grayscale | channel=>{Average, Brightness, Lightness, Rec601Luma, Rec601Luminance, Rec709Luma, Rec709Luminance, RMS} | converte a imagem para tons de cinza |
| HaldClut | image=>image-handle , channel=>{Red, RGB, All, etc.} | aplica uma tabela de consulta de cores Hald a uma sequência de imagens |
| HoughLine | geometry=>geometry , width=>double , height=>double , threshold=>double | identifica linhas na imagem (por exemplo, HoughLine('9x9+195')). |
| Identify | file=>file , features=>distance , moments=>{True, False}, unique=>{True, False} | identifica os atributos de uma imagem |
| Implode | amount=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | implode os pixels da imagem em torno do centro |
| Integral | calcula a soma dos valores (valores de pixel) na imagem. | |
| InverseDiscreteFourierTransform | magnitude=>{True, False} | implementa a transformada discreta de Fourier (DFT) inversa |
| Kmeans | geometry=>geometry , 'colors'=>double , 'iterations'=>double , 'tolerance'=>double | redução de cores por K-médias. |
| Kuwahara | geometry=>geometry , radius=>double , sigma=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | filtro de redução de ruído que preserva bordas |
| Label | string | atribui um rótulo a uma imagem |
| Layers | method=>{coalesce, compare-any, compare-clear, compare-over, composite, dispose, flatten, merge, mosaic, optimize, optimize-image, optimize-plus, optimize-trans, remove-dups, remove-zero}, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, LinearLight, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, dither=>{true, false} | compara cada imagem com as formas descartadas (disposed) GIF da imagem anterior na sequência. A partir disso, tenta selecionar a menor imagem recortada para substituir cada quadro, preservando os resultados da animação. |
| Level | levels=>string , 'black-point'=>double , 'gamma'=>double , 'white-point'=>double , channel=>{Red, RGB, All, etc.} | ajusta o nível de contraste da imagem |
| LevelColors | invert=>>{True, False}, 'black-point'=>string , 'white-point'=>string , channel=>{Red, RGB, All, etc.} | ajusta os níveis da imagem com as cores dadas |
| LinearStretch | levels=>string , 'black-point'=>double , 'white-point'=>double | estiramento linear com saturação |
| LiquidResize | geometry=>geometry , width=>integer , height=>integer , delta-x=>double , rigidity=>double | redimensiona a imagem com seam-carving (escultura de costuras). |
| Magnify | dobra o tamanho da imagem com escalonamento de pixel art | |
| Mask | mask=>image-handle | compõe os pixels da imagem conforme definido pela máscara |
| MatteFloodfill | geometry=>geometry , x=>integer , y=>integer , matte=>integer , bordercolor=>color name , fuzz=>double , invert=>{True, False} | altera o valor matte de qualquer pixel que corresponda à cor do pixel alvo e seja vizinho dele. Se você especificar uma cor de borda, o valor matte é alterado para qualquer pixel vizinho que não seja dessa cor. |
| MeanShift | geometry=>geometry , width=>double , height=>double , distance=>double | delineia agrupamentos de forma arbitrária na imagem (por exemplo, MeanShift('7x7+10%')). |
| MedianFilter | geometry=>geometry , width=>integer , height=>integer , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | substitui cada pixel pelo pixel de intensidade mediana de uma vizinhança. |
| Minify | reduz pela metade o tamanho de uma imagem | |
| Mode | geometry=>geometry , width=>integer , height=>integer , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | torna cada pixel a cor predominante da vizinhança. |
| Modulate | factor=>geometry , brightness=>double , saturation=>double , hue=>double , lightness=>double , whiteness=>double , blackness=>double | varia o brilho, a saturação e o matiz de uma imagem pela porcentagem especificada |
| Morphology | kernel=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, iterations=>integer | aplica um método de morfologia à imagem. |
| MotionBlur | geometry=>geometry , radius=>double , sigma=>double , angle=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | reduz o ruído da imagem e os níveis de detalhe com um operador gaussiano de raio e desvio padrão (sigma) dados, no ângulo dado, para simular o efeito de movimento |
| Negate | gray=>{True, False}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | substitui cada pixel por sua cor complementar (branco vira preto, amarelo vira azul, etc.) |
| Normalize | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | transforma a imagem para abranger toda a faixa de valores de cor |
| OilPaint | radius=>integer | simula uma pintura a óleo |
| Opaque | color=>color name , fill=>color name , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, invert=>{True, False} | altera esta cor para a cor de preenchimento (fill) dentro da imagem |
| OrderedDither | threshold=>{threshold, checks, o2x2, o3x3, o4x4, o8x8, h4x4a, h6x6a, h8x8a, h4x4o, h6x6o, h8x8o, h16x16o, hlines6x4}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | aplica pontilhamento ordenado à imagem |
| Perceptible | epsilon=>double , channel=>{Red, RGB, All, etc.} | define cada pixel cujo valor é menor que |
| Polaroid | caption=>string , angle=>double , pointsize=>double , font=>string , stroke=> color name , strokewidth=>integer , fill=>color name , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, background=>color name | simula uma foto Polaroid. |
| Posterize | levels=>integer , dither=>{True, False} | reduz a imagem a um número limitado de níveis de cor |
| Profile | name=>string , profile=>blob , rendering-intent=>{Undefined, Saturation, Perceptual, Absolute, Relative}, black-point-compensation=>{True, False} | adiciona ou remove um perfil de imagem ICC ou IPTC; name é o nome formal (por exemplo, ICC) ou o nome do arquivo; defina profile como '' para remover o perfil |
| Quantize | colors=>integer , colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK, sRGB, HSL, HSB}, treedepth=> integer , dither=>{True, False}, dither-method=>{Riemersma, Floyd-Steinberg}, measure_error=>{True, False}, global_colormap=>{True, False}, transparent-color=>color | número desejado de cores na imagem |
| Raise | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , raise=>{True, False} | clareia ou escurece as bordas da imagem para criar um efeito 3D |
| RangeThreshold | geometry=>geometry , 'low-black'=>double , 'low-white'=>double , 'high-white'=>double , 'high-black'=>double | combina limiarização suave e dura da imagem. |
| ReduceNoise | geometry=>geometry , width=>integer , height=>integer , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | reduz o ruído na imagem com um filtro de eliminação de picos de ruído |
| Remap | image=>image-handle , dither=>{true, false}, dither-method=>{Riemersma, Floyd-Steinberg} | substitui as cores de uma imagem pela cor mais próxima de uma imagem de referência. |
| Resample | density=>geometry , x=>double , y=>double , filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double | reamostra a imagem para a resolução desejada. Especifique blur > 1 para desfocado ou < 1 para nítido |
| Resize | geometry=>geometry , width=>integer , height=>integer , filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double , blur=>double | escalona a imagem para o tamanho desejado. Especifique blur > 1 para desfocado ou < 1 para nítido |
| Roll | geometry=>geometry , x=>integer , y=>integer | rola uma imagem vertical ou horizontalmente |
| Rotate | degrees=>double , background=>color name | rotaciona uma imagem |
| RotationalBlur | geometry=>geometry , angle=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | desfoca a imagem radialmente. |
| Sample | geometry=>geometry , width=>integer , height=>integer | escalona a imagem por amostragem de pixels. |
| Scale | geometry=>geometry , width=>integer , height=>integer | escalona a imagem para o tamanho desejado |
| Segment | colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK}, verbose={True, False}, cluster-threshold=>double , smoothing-threshold=double | segmenta uma imagem analisando os histogramas dos componentes de cor e identificando unidades homogêneas |
| SelectiveBlur | geometry=>geometry , radius=>double , sigma=>double , threshold=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | desfoca seletivamente os pixels dentro de um limiar de contraste. |
| Separate | channel=>{Red, RGB, All, etc.} | separa um canal da imagem em uma imagem em tons de cinza |
| Shade | geometry=>geometry , azimuth=>double , elevation=>double , gray=>{true, false} | sombreia a imagem usando uma fonte de luz distante |
| SetPixel | geometry=>geometry , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, color=>array of float values , x=>integer , y=>integer , color=>array of float values | define o valor de um único pixel. Esperam-se valores de pixel normalizados. |
| SetPixels | geometry=>geometry , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, color=>array of float values , width=>integer , height=>integer , x=>integer , y=>integer , color=>array of float values | define o valor de um ou mais pixels. Esperam-se valores de pixel normalizados. |
| Shadow | geometry=>geometry , opacity=>double , sigma=>double , x=>integer , y=>integer | simula uma sombra da imagem |
| Sharpen | geometry=>geometry , radius=>double , sigma=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | aguça a imagem com um operador gaussiano de raio e desvio padrão (sigma) dados. |
| Shave | geometry=>geometry , width=>integer , height=>integer | apara pixels das bordas da imagem |
| Shear | geometry=>geometry , x=>double , y=>double fill=>color name | aplica cisalhamento à imagem ao longo do eixo X ou Y por um ângulo de cisalhamento positivo ou negativo |
| SigmoidalContrast | geometry=>string , 'contrast'=>double , 'mid-point'=>double channel=>{Red, RGB, All, etc.}, sharpen=>{True, False} | controle de contraste por não linearidade sigmoide. Aumenta o contraste da imagem usando uma função de transferência sigmoide sem saturar realces ou sombras. contrast indica quanto aumentar o contraste (0 é nenhum; 3 é típico; 20 é muito); mid-point indica onde os meios-tons caem na imagem resultante (0 é branco; 50% é cinza médio; 100% é preto). Para diminuir o contraste, defina sharpen como False. |
| Signature | gera um resumo de mensagem SHA-256 para o fluxo de pixels da imagem | |
| Sketch | geometry=>geometry , radius=>double , sigma=>double , angle=>double | esboça a imagem com um operador gaussiano de raio e desvio padrão (sigma) dados, no ângulo dado |
| Solarize | geometry=>string , threshold=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | inverte todos os pixels acima do nível limiar |
| SortPixels | ordena os pixels dentro de cada linha de varredura em ordem crescente de intensidade. | |
| SparseColor | points=>array of float values , method=>{Barycentric, Bilinear, Shepards, Voronoi}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} | interpola as cores da imagem em torno dos pontos fornecidos |
| Splice | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , fuzz=>double , background=>color name , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | insere uma emenda (splice) na imagem |
| Spread | radius=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | desloca os pixels da imagem por uma quantidade aleatória |
| Statistic | geometry=>geometry , width=>integer , height=>integer , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, type=>{Contrast, Median, Mode, Mean, Maximum, Minimum, ReduceNoise, RMS} | substitui cada pixel pela estatística correspondente da vizinhança. |
| Stegano | image=>image-handle , offset=>integer | esconde uma marca d'água digital dentro da imagem |
| Stereo | image=>image-handle , x=>integer , y=>integer | compõe duas imagens e produz uma única imagem que é a composição de uma imagem esquerda e uma direita de um par estéreo |
| Strip | remove da imagem todos os perfis e comentários. | |
| Swirl | degrees=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | redemoinha os pixels da imagem em torno do centro |
| Texture | texture=>image-handle | nome da textura a ser ladrilhada sobre o fundo da imagem |
| Thumbnail | geometry=>geometry , width=>integer , height=>integer | altera o tamanho de uma imagem para as dimensões dadas e remove quaisquer perfis associados. |
| Threshold | threshold=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | limiariza a imagem |
| Tint | fill=>color name , blend=>string | matiza a imagem com a cor de preenchimento (fill). |
| Transparent | color=>color name , invert=>{True, False} | torna esta cor transparente dentro da imagem |
| Transpose | inverte a imagem na direção vertical e a rotaciona 90 graus | |
| Transverse | inverte a imagem na direção horizontal e a rotaciona 270 graus | |
| Trim | remove da imagem as bordas que são da cor de fundo | |
| UnsharpMask | geometry=>geometry , radius=>double , sigma=>double , gain=>double , threshold=>double | aguça a imagem com o algoritmo de máscara de nitidez (unsharp mask). |
| Vignette | geometry=>geometry , radius=>double , sigma=>double , x=>integer , y=>integer , background=>color name | desloca as bordas da imagem em estilo de vinheta |
| Wave | geometry=>geometry , amplitude=>double , wavelength=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | altera uma imagem ao longo de uma onda senoidal |
| WaveDenoise | geometry=>geometry , threshold=>double , threshold=>double | remove ruído da imagem usando uma transformada wavelet |
| WhiteBalance | aplica balanço de branco a uma imagem de acordo com a suposição de mundo cinza (grayworld) no espaço de cor LAB. | |
| WhiteThreshold | threshold=>string , , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | força todos os pixels acima da intensidade limiar para branco |
Observe que o parâmetro geometry é um atalho para os parâmetros width e height (por exemplo, geometry=>'106x80' é equivalente a width=>106, height=>80).
Você pode especificar @filename tanto em Annotate() quanto em Draw(). Isso lê as instruções de texto ou de primitivas gráficas de um arquivo no disco. Por exemplo,
image->Draw(fill=>'red', primitive=>'rectangle',
points=>'20,20 100,100 40,40 200,200 60,60 300,300');
é equivalente a
$image->Draw(fill=>'red', primitive=>'@draw.txt');
onde draw.txt é um arquivo no disco que contém isto:
rectangle 20, 20 100, 100
rectangle 40, 40 200, 200
rectangle 60, 60 300, 300
O parâmetro text dos métodos Annotate(), Comment(), Draw() e Label() pode incluir o nome do arquivo, tipo, largura, altura ou outro atributo da imagem, incorporando estes caracteres especiais de formato:
%b tamanho do arquivo
%c comentário
%d diretório
%e extensão do nome do arquivo
%f nome do arquivo
%g geometria da página
%h altura
%i nome do arquivo de entrada
%k número de cores únicas
%l rótulo
%m magick
%n número de cenas
%o nome do arquivo de saída
%p número da página
%q profundidade de quantum
%r classe da imagem e espaço de cor
%s número da cena
%t nome do arquivo sem diretório e extensão
%u nome de arquivo temporário único
%w largura
%x resolução x
%y resolução y
%z profundidade da imagem
%C tipo de compressão da imagem
%D método de descarte (dispose) da imagem
%H altura da página
%Q qualidade de compressão da imagem
%T atraso da imagem
%W largura da página
%X deslocamento x da página
%Y deslocamento y da página
%@ caixa delimitadora
%# assinatura
%% sinal de porcentagem
\n nova linha
\r retorno de carro
Por exemplo,
text=>"%m:%f %wx%h"
produz uma anotação MIFF:bird.miff 512x480 para uma imagem intitulada bird.miff cuja largura é 512 e altura é 480.
Você pode opcionalmente adicionar Image a qualquer nome de método. Por exemplo, TrimImage() é um alias para o método Trim().
A maioria dos atributos listados acima tem um análogo no magick. Consulte a documentação para uma descrição mais detalhada desses atributos.
Definir atributos de imagem
Use o método Set() para definir um atributo de imagem. Por exemplo,
$image->Set(dither=>'True');
$image->[$x]->Set(delay=>3);
Onde este exemplo usa 'True' e este documento diz '{True, False}', você pode usar as strings sem distinção de maiúsculas/minúsculas 'True' e 'False', ou pode usar os inteiros 1 e 0.
Quando você chama Get() em um atributo booleano, o Image::Magick retorna 1 ou 0, não uma string.
E aqui está uma lista de todos os atributos de imagem que você pode definir:
| Atributos de imagem Atributo | Valores | Descrição |
|---|---|---|
| adjoin | {True, False} | une várias imagens em um único arquivo de múltiplas imagens |
| alpha | {On, Off, Opaque, Transparent, Copy, Extract, Set} | controle e operações especiais envolvendo o canal alfa/matte |
| antialias | {True, False} | remove o aliasing de pixels |
| area-limit | integer | define o limite de recurso de área de pixels. |
| attenuate | double | diminui (ou intensifica) ao adicionar ruído a uma imagem. |
| authenticate | string | descriptografa a imagem com esta senha. |
| background | color name | cor de fundo da imagem |
| blue-primary | x-value , y-value | ponto primário azul de cromaticidade (por exemplo, 0.15, 0.06) |
| bordercolor | color name | define a cor da borda da imagem |
| clip-mask | image | associa uma máscara de recorte à imagem. |
| colormap[i] | color name | nome de cor (por exemplo, red) ou valor hexadecimal (por exemplo, #ccc) na posição i |
| comment | string | define o comentário da imagem |
| compression | {None, BZip, Fax, Group4, JPEG, JPEG2000, LosslessJPEG, LZW, RLE, Zip} | tipo de compressão da imagem |
| debug | {All, Annotate, Blob, Cache, Coder, Configure, Deprecate, Draw, Exception, Locale, None, Resource, Transform, X11} | exibe uma grande quantidade de informações de depuração |
| delay | integer | devem decorrer estes centésimos de segundo antes de exibir a próxima imagem de uma sequência |
| density | geometry | resolução vertical e horizontal da imagem em pixels |
| depth | integer | profundidade da imagem |
| direction | {Undefined, right-to-left, left-to-right | renderiza o texto da direita para a esquerda ou da esquerda para a direita |
| disk-limit | integer | define o limite de recurso de disco |
| dispose | {Undefined, None, Background, Previous} | método de descarte de camada |
| dither | {True, False} | aplica difusão de erro à imagem |
| display | string | especifica o servidor X a ser contatado |
| extract | geometry | extrai uma área da imagem |
| file | filehandle | define o filehandle da imagem |
| filename | string | define o nome do arquivo da imagem |
| fill | color | a cor de preenchimento (fill) pinta quaisquer áreas dentro do contorno da forma desenhada. |
| font | string | usa esta fonte ao anotar a imagem com texto |
| fuzz | integer | cores dentro desta distância são consideradas iguais |
| gamma | double | nível de gama da imagem |
| Gravity | {Forget, NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | tipo de gravidade da imagem |
| green-primary | x-value , y-value | ponto primário verde de cromaticidade (por exemplo, 0.3, 0.6) |
| index[x , y] | string | índice do mapa de cores na posição (x , y) |
| interlace | {None, Line, Plane, Partition, JPEG, GIF, PNG} | o tipo de esquema de entrelaçamento |
| iterations | integer | adiciona a extensão de laço Netscape à sua animação GIF |
| label | string | define o rótulo da imagem |
| loop | integer | adiciona a extensão de laço Netscape à sua animação GIF |
| magick | string | define o formato da imagem |
| map-limit | integer | define o limite de recurso de mapa |
| mask | image | associa uma máscara à imagem. |
| matte | {True, False} | habilita o canal matte da imagem |
| mattecolor | color name | define a cor matte da imagem |
| memory-limit | integer | define o limite de recurso de memória |
| monochrome | {True, False} | transforma a imagem em preto e branco |
| option | string | associa uma opção a um formato de imagem (por exemplo, option=>'ps:imagemask') |
| orientation | {TopLeft, TopRight, BottomRight, BottomLeft, LeftTop, RightTop, RightBottom, LeftBottom} | orientação da imagem |
| page | { Letter, Tabloid, Ledger, Legal, Statement, Executive, A3, A4, A5, B4, B5, Folio, Quarto, 10x14} or geometry | tamanho e localização preferidos de uma tela de imagem |
| pixel[x , y] | string | valor hexadecimal (por exemplo, #ccc) na posição (x , y) |
| pointsize | integer | tamanho em pontos da fonte Postscript ou TrueType |
| precision | integer | define o número máximo de dígitos significativos a serem impressos |
| quality | integer | nível de compressão JPEG/MIFF/PNG |
| red-primary | x-value , y-value | ponto primário vermelho de cromaticidade (por exemplo, 0.64, 0.33) |
| sampling-factor | geometry | fator de amostragem horizontal e vertical |
| scene | integer | número da cena da imagem |
| server | string | especifica o servidor X a ser contatado |
| size | string | largura e altura de uma imagem raw |
| stroke | color | a cor do traço (stroke) pinta ao longo do contorno de uma forma. |
| texture | string | nome da textura a ser ladrilhada sobre o fundo da imagem |
| tile-offset | geometry | deslocamento do ladrilho da imagem |
| time-limit | integer | define o limite de recurso de tempo em segundos |
| title | string | define o título da imagem |
| type | {Bilevel, Grayscale, GrayscaleMatte, Palette, PaletteMatte, TrueColor, TrueColorMatte, ColorSeparation, ColorSeparationMatte} | tipo da imagem |
| units | { Undefined, PixelsPerInch, PixelsPerCentimeter} | unidades de resolução da imagem |
| verbose | {True, False} | imprime informações detalhadas sobre a imagem |
| virtual-pixel | {Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} | o método de pixel virtual |
| white-point | x-value , y-value | ponto branco de cromaticidade (por exemplo, 0.3127, 0.329) |
Observe que o parâmetro geometry é um atalho para os parâmetros width e height (por exemplo, geometry=>'106x80' é equivalente a width=>106, height=>80).
SetAttribute() é um alias para o método Set().
A maioria dos atributos listados acima tem um análogo no magick. Consulte a documentação para uma descrição mais detalhada desses atributos.
Obter atributos de imagem
Use o método Get() para obter um atributo de imagem. Por exemplo,
($a, $b, $c) = $image->Get('colorspace', 'magick', 'adjoin');
$width = $image->[3]->Get('columns');
Além de todos os atributos listados em "Definir atributos de imagem", você pode obter estes atributos adicionais:
| Atributos de imagem Atributo | Valores | Descrição |
|---|---|---|
| area | integer | recurso de área atualmente consumido |
| base-columns | integer | largura da imagem base (antes das transformações) |
| base-filename | string | nome do arquivo da imagem base (antes das transformações) |
| base-rows | integer | altura da imagem base (antes das transformações) |
| class | {Direct, Pseudo} | classe da imagem |
| colors | integer | número de cores únicas na imagem |
| columns | integer | largura da imagem |
| copyright | string | obtém o copyright do PerlMagick |
| directory | string | nomes dos ladrilhos dentro de uma montagem de imagens |
| elapsed-time | double | tempo decorrido em segundos desde a criação da imagem |
| error | double | o erro médio por pixel calculado pelos métodos Compare() ou Quantize() |
| bounding-box | string | caixa delimitadora da imagem |
| disk | integer | recurso de disco atualmente consumido |
| filesize | integer | número de bytes da imagem no disco |
| format | string | obtém o formato descritivo da imagem |
| geometry | string | geometria da imagem |
| height | integer | o número de linhas ou altura de uma imagem |
| icc | string | perfil ICC |
| icc | string | perfil ICM |
| id | integer | id de registro do ImageMagick |
| IPTC | string | perfil IPTC |
| mean-error | double | o erro médio normalizado por pixel calculado pelos métodos Compare() ou Quantize() |
| map | integer | recurso de memória mapeada atualmente consumido |
| matte | {True, False} | se a imagem tem ou não um canal matte |
| maximum-error | double | o erro máximo normalizado por pixel calculado pelos métodos Compare() ou Quantize() |
| memory | integer | recurso de memória atualmente consumido |
| mime | string | MIME do formato da imagem |
| montage | geometry | tamanho e deslocamento do ladrilho dentro de uma montagem de imagens |
| page.x | integer | deslocamento x da tela virtual da imagem |
| page.y | integer | deslocamento y da tela virtual da imagem |
| rows | integer | o número de linhas ou altura de uma imagem |
| signature | string | resumo de mensagem SHA-256 associado ao fluxo de pixels da imagem |
| taint | {True, False} | True se a imagem foi modificada |
| total-ink-density | double | retorna a densidade total de tinta de uma imagem CMYK |
| transparent-color | color name | define a cor transparente da imagem |
| user-time | double | tempo de usuário em segundos desde a criação da imagem |
| version | string | obtém a versão do PerlMagick |
| width | integer | o número de colunas ou largura de uma imagem |
| XMP | string | perfil XMP |
| x-resolution | integer | resolução x da imagem |
| y-resolution | integer | resolução y da imagem |
GetAttribute() é um alias para o método Get().
A maioria dos atributos listados acima tem um análogo no magick. Consulte a documentação para uma descrição mais detalhada desses atributos.
Comparar uma imagem com sua reconstrução
Com o método Compare(), anote matemática e visualmente a diferença entre uma imagem e sua reconstrução. O método suporta estes parâmetros:
| Parâmetros de comparação Parâmetro | Valores | Descrição |
|---|---|---|
| channel | double | seleciona os canais da imagem; o padrão são todos os canais, exceto alfa. |
| fuzz | double | cores dentro desta distância são consideradas iguais |
| image | image-reference | a imagem de reconstrução |
| metric | AE, MAE, MEPP, MSE, PAE, PSNR, RMSE | mede as diferenças entre as imagens com esta métrica |
Neste exemplo, comparamos o logotipo do ImageMagick com uma reconstrução aguçada:
use Image::Magick;
$logo=Image::Magick->New();
$logo->Read('logo:');
$sharp=Image::Magick->New();
$sharp->Read('logo:');
$sharp->Sharpen('0x1');
$difference=$logo->Compare(image=>$sharp, metric=>'rmse');
print $difference->Get('error'), "\n";
$difference->Display();
Além do erro quadrático médio reportado de cerca de 0,024, é exibida uma imagem de diferença para que você possa identificar visualmente a diferença entre as imagens.
Criar uma montagem de imagens
Use o método Montage() para criar uma imagem composta combinando várias imagens separadas. As imagens são dispostas em mosaico sobre a imagem composta, com o nome da imagem aparecendo opcionalmente logo abaixo de cada ladrilho. Por exemplo,
$image->Montage(geometry=>'160x160', tile=>'2x2', texture=>'granite:');
E aqui está uma lista de parâmetros do Montage() que você pode definir:
| Parâmetros de montagem Parâmetro | Valores | Descrição |
|---|---|---|
| background | color name | nome da cor de fundo |
| border | integer | largura da borda da imagem |
| filename | string | nome da imagem de montagem |
| fill | color name | cor de preenchimento (fill) para anotações |
| font | string | nome da fonte X11 |
| frame | geometry | envolve a imagem com uma borda ornamental |
| geometry | geometry | tamanho preferido do ladrilho e da borda de cada ladrilho da imagem composta (por exemplo, 120x120+4+3>) |
| gravity | NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast | direção para a qual a imagem gravita dentro de um ladrilho |
| label | string | atribui um rótulo a uma imagem |
| mode | Frame, Unframe, Concatenate | opções de emolduramento das miniaturas |
| pointsize | integer | tamanho em pontos da fonte Postscript ou TrueType |
| shadow | {True, False} | adiciona uma sombra abaixo de um ladrilho para simular profundidade |
| stroke | color name | cor do traço (stroke) para anotações |
| texture | string | nome da textura a ser ladrilhada sobre o fundo da imagem |
| tile | geometry | o número de ladrilhos por linha e página (por exemplo, 6x4) |
| title | string | atribui um título à montagem de imagens |
| transparent | string | torna esta cor transparente dentro da imagem |
Observe que o parâmetro geometry é um atalho para os parâmetros width e height (por exemplo, geometry=>'106x80' é equivalente a width=>106, height=>80).
MontageImage() é um alias para o método Montage().
A maioria dos atributos listados acima tem um análogo no montage. Consulte a documentação para uma descrição mais detalhada desses atributos.
Trabalhar com Blobs
Um blob contém dados que representam diretamente um formato de imagem específico na memória, em vez de no disco. O PerlMagick suporta blobs em qualquer um destes formatos de imagem e fornece métodos para converter um blob de ou para um formato de imagem específico.
| Métodos de Blob Método | Parâmetros | Valor de retorno | Descrição |
|---|---|---|---|
| ImageToBlob | any image attribute | an array of image data in the respective image format | converte uma imagem ou sequência de imagens em um array de blobs |
| BlobToImage | one or more blobs | the number of blobs converted to an image | converte um ou mais blobs em uma imagem |
ImageToBlob() retorna os dados da imagem em seus respectivos formatos. Você pode então imprimi-los, salvá-los em um banco de dados ODBC, gravá-los em um arquivo ou enviá-los por pipe a um programa de exibição:
@blobs = $image->ImageToBlob();
open(DISPLAY,"| display -") || die;
binmode DISPLAY;
print DISPLAY $blobs[0];
close DISPLAY;
O método BlobToImage() retorna uma imagem ou sequência de imagens convertida a partir do blob fornecido:
@blob=$db->GetImage();
$image=Image::Magick->new(magick=>'jpg');
$image->BlobToImage(@blob);
Acesso direto aos pixels da imagem
Use estes métodos para obter acesso direto aos pixels da imagem:
| Acesso direto aos pixels da imagem Método | Parâmetros | Descrição |
|---|---|---|
| GetAuthenticPixels | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer | retorna os pixels autênticos como um ponteiro C |
| GetVirtualPixels | geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer | retorna os pixels virtuais como um ponteiro C const |
| GetAuthenticIndexQueue | retorna os índices do mapa de cores ou os pixels pretos como um ponteiro C | |
| GetVirtualIndexQueue | retorna os índices do mapa de cores ou os pixels pretos como um ponteiro C const | |
| SyncAuthenticPixels | sincroniza os pixels autênticos com o cache de pixels |
Outros métodos
O método Append() anexa um conjunto de imagens. Por exemplo,
$p = $image->Append(stack=>{true,false});
anexa todas as imagens associadas ao objeto $image. Por padrão, as imagens são empilhadas da esquerda para a direita. Defina stack como True para empilhá-las de cima para baixo.
O método Clone() copia um conjunto de imagens. Por exemplo,
$q = $p->Clone();
copia todas as imagens do objeto $p para $q. Você pode usar este método para sequências de imagem única ou de múltiplas imagens.
Coalesce() compõe um conjunto de imagens respeitando quaisquer deslocamentos de página e métodos de descarte. As sequências de animação GIF, MIFF e MNG normalmente começam com uma imagem de fundo, e cada imagem subsequente varia em tamanho e deslocamento. É retornada uma nova sequência de imagens, todas do mesmo tamanho da tela virtual da primeira imagem e compostas com a próxima imagem da sequência. Por exemplo,
$q = $p->Coalesce();
O método ComplexImages() realiza operações matemáticas com números complexos sobre uma sequência de imagens. Por exemplo,
$p = $image->ComplexImages('conjugate');
O método EvaluateImages() aplica uma expressão aritmética, lógica ou relacional a um conjunto de imagens. Por exemplo,
$p = $image->EvaluateImages('mean');
calcula a média de todas as imagens associadas ao objeto $image.
O método Features() retorna as características (features) de cada canal da imagem em cada uma das quatro direções (horizontal, vertical e as diagonais esquerda e direita) para a distância especificada. As características incluem o momento angular de segunda ordem, contraste, correlação, soma de quadrados: variância, momento de diferença inversa, média da soma, variância da soma, entropia da soma, entropia, variância da diferença, entropia da diferença, medidas de informação de correlação 1, medidas de informação de correlação 2 e coeficiente de correlação máximo. Os valores estão na ordem RGB, CMYK, RGBA ou CMYKA (dependendo do tipo da imagem).
@features = $image->Features(1);
O método Flatten() achata um conjunto de imagens e o retorna. Por exemplo,
$p = $images->Flatten(background=>'none');
$p->Write('flatten.png');
A sequência de imagens é substituída por uma única imagem criada compondo cada imagem após a primeira sobre a primeira imagem.
O método Fx() aplica uma expressão matemática a um conjunto de imagens e retorna os resultados. Por exemplo,
$p = $image->Fx(expression=>'(g+b)/2.0',channel=>'red');
$p->Write('fx.miff');
substitui o canal vermelho pela média dos canais verde e azul.
Consulte FX, o operador de imagem de efeitos especiais para uma discussão detalhada deste método.
Histogram() retorna as cores únicas da imagem e uma contagem para cada uma. Os valores retornados são um array de valores de vermelho, verde, azul, opacidade e contagem.
O método Morph() faz a transição (morph) de um conjunto de imagens. Tanto os pixels quanto o tamanho da imagem são interpolados linearmente para dar a aparência de uma metamorfose de uma imagem para a próxima:
$p = $image->Morph(frames=>_integer_);
onde frames é o número de imagens intermediárias a gerar. O padrão é 1.
Mosaic() cria um mosaico a partir de uma sequência de imagens.
O método Mogrify() é um ponto de entrada único para os métodos de manipulação de imagem ("Manipular uma imagem"). Os parâmetros são o nome de um método seguido de quaisquer parâmetros que o método possa exigir. Por exemplo, estas chamadas são equivalentes:
$image->Crop('340x256+0+0');
$image->Mogrify('crop', '340x256+0+0');
O método MogrifyRegion() aplica uma transformação a uma região da imagem. É semelhante ao Mogrify(), mas começa com a geometria da região. Por exemplo, suponha que você queira clarear uma região de 100x100 da sua imagem na posição (40, 50):
$image->MogrifyRegion('100x100+40+50', 'modulate', brightness=>50);
PerceptualHash() mapeia imagens visualmente idênticas para o mesmo hash, ou para um hash semelhante — útil em recuperação, autenticação, indexação ou detecção de cópias de imagens, bem como em marcas d'água digitais. Para cada canal e para os espaços de cor sRGB e HCLp, são retornados 7 valores de hash. Para imagens sRGB, por exemplo, espere 42 hashes perceptuais.
@phash = $image->PerceptualHash();
Ping() é um método de conveniência que retorna informações sobre uma imagem sem precisar lê-la na memória. Ele retorna a largura, a altura, o tamanho do arquivo em bytes e o formato do arquivo da imagem. Você pode especificar mais de um nome de arquivo, mas apenas um filehandle:
($width, $height, $size, $format) = $image->Ping('logo.png');
($width, $height, $size, $format) = $image->Ping(file=>\*IMAGE);
($width, $height, $size, $format) = $image->Ping(blob=>$blob);
Esta é uma forma mais eficiente e que consome menos memória de consultar se uma imagem existe e quais são suas características.
Poly() constrói um polinômio a partir da sequência de imagens e dos termos correspondentes (pares de coeficiente e grau):
$p = $image->Poly([0.5,1.0,0.25,2.0,1.0,1.0]);
PreviewImage() dispõe em mosaico 9 miniaturas da imagem especificada com uma operação de processamento de imagem aplicada em intensidades variadas. Isso pode ajudar a determinar um parâmetro apropriado para uma operação de processamento de imagem específica. Escolha entre estas operações: Rotate, Shear, Roll, Hue, Saturation, Brightness, Gamma, Spiff, Dull, Grayscale, Quantize, Despeckle, ReduceNoise, AddNoise, Sharpen, Blur, Threshold, EdgeDetect, Spread, Solarize, Shade, Raise, Segment, Swirl, Implode, Wave, OilPaint, CharcoalDrawing, JPEG. Aqui está um exemplo:
$preview = $image->Preview('Gamma');
$preview->Display();
Para ter controle total sobre o posicionamento do texto, você precisa de informações de métrica da fonte. Use
($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance) =
$image->QueryFontMetrics(_parameters_);
onde parameters é qualquer parâmetro do método Annotate. Os valores retornados são:
- largura do caractere
- altura do caractere
- ascendente
- descendente
- largura do texto
- altura do texto
- avanço horizontal máximo
- limites: x1
- limites: y1
- limites: x2
- limites: y2
- origem: x
- origem: y
Use QueryMultilineFontMetrics() para obter a largura e a altura máximas do texto para múltiplas linhas de texto.
Chame QueryColor() sem parâmetros para retornar uma lista de nomes de cores conhecidos, ou especifique um ou mais nomes de cores para obter estes atributos: valores de vermelho, verde, azul e opacidade.
@colors = $image->QueryColor();
($red, $green, $blue) = $image->QueryColor('cyan');
($red, $green, $blue, $alpha) = $image->QueryColor('#716baeff');
QueryColorname() aceita um valor de cor e retorna seu respectivo nome ou valor hexadecimal:
$name = $image->QueryColorname('rgba(80,60,0,0)');
Chame QueryFont() sem parâmetros para retornar uma lista de fontes conhecidas, ou especifique um ou mais nomes de fontes para obter estes atributos: nome da fonte, descrição, família, estilo, esticamento (stretch), peso, codificação, fundição (foundry), formato, métricas e glifos.
@fonts = $image->QueryFont();
$weight = ($image->QueryFont('Helvetica'))[5];
Chame QueryFormat() sem parâmetros para retornar uma lista de formatos de imagem conhecidos, ou especifique um ou mais nomes de formatos para obter estes atributos: adjoin, suporte a blob, raw, decodificador, codificador, descrição e módulo.
@formats = $image->QueryFormat();
($adjoin, $blob_support, $raw, $decoder, $encoder, $description, $module) =
$image->QueryFormat('gif');
Chame MagickToMime() com o nome do formato da imagem para obter seu tipo MIME, como image/tiff a partir de tif.
$mime = $image->MagickToMime('tif');
Use RemoteCommand() para enviar um comando a uma aplicação display ou animate já em execução. O único parâmetro é o nome do arquivo de imagem a exibir ou animar.
$image->RemoteCommand('image.jpg');
O método Smush() une um conjunto de imagens de forma justaposta. Por exemplo,
$p = $image->Smush(stack=>{true,false},offset=>integer);
une de forma justaposta todas as imagens associadas ao objeto $image. Por padrão, as imagens são justapostas da esquerda para a direita. Defina stack como True para justapô-las de cima para baixo.
Statistics() retorna as estatísticas da imagem para cada canal da imagem. Os valores retornados são um array de valores de profundidade, mínimo, máximo, média, desvio padrão, curtose, assimetria e entropia, na ordem RGB, CMYK, RGBA ou CMYKA (dependendo do tipo da imagem).
@statistics = $image->Statistics();
Por fim, o método Transform() aceita uma especificação de geometria totalmente qualificada para recortar ou redimensionar uma ou mais imagens. Por exemplo,
$p = $image->Transform(crop=>'100x100+0+0');
Você pode opcionalmente adicionar Image a qualquer nome de método acima. Por exemplo, PingImage() é um alias para o método Ping().
Tratamento de exceções
Todos os métodos do PerlMagick retornam um contexto de string indefinido em caso de sucesso. Se ocorrer algum problema, o erro é retornado como uma string com um código numérico de status incorporado. Um código de status menor que 400 é um aviso. Isso significa que a operação não foi concluída, mas era recuperável até certo ponto. Um código numérico maior ou igual a 400 é um erro e indica que a operação falhou completamente. Veja como as exceções são retornadas pelos diferentes métodos:
Métodos que retornam um número (por exemplo, Read(), Write()):
$x = $image->Read(...);
warn "$x" if "$x"; # imprime a mensagem de erro
$x =~ /(\d+)/;
print $1; # imprime o número do erro
print 0+$x; # imprime o número de imagens lidas
Métodos que operam sobre uma imagem (por exemplo, Resize(), Crop()):
$x = $image->Crop(...);
warn "$x" if "$x"; # imprime a mensagem de erro
$x =~ /(\d+)/;
print $1; # imprime o número do erro
Os métodos que retornam imagens (EvaluateSequence(), Montage(), Clone()) devem ser verificados quanto a erros desta forma:
$x = $image->Montage(...);
warn "$x" if !ref($x); # imprime a mensagem de erro
$x =~ /(\d+)/;
print $1; # imprime o número do erro
Aqui está um exemplo de mensagem de erro:
Error 400: Memory allocation failed
Consulte a lista completa de códigos de erro e aviso.
O exemplo a seguir mostra como você pode usar um código numérico de status:
$x = $image->Read('rose.png');
$x =~ /(\d+)/;
die "unable to continue" if ($1 == ResourceLimitError);
Constantes
O PerlMagick inclui estas constantes:
BlobError
BlobWarning
CacheError
CacheWarning
CoderError
CoderWarning
ConfigureError
ConfigureWarning
CorruptImageError
CorruptImageWarning
DelegateError
DelegateWarning
DrawError
DrawWarning
ErrorException
FatalErrorException
FileOpenError
FileOpenWarning
ImageError
ImageWarning
MissingDelegateError
MissingDelegateWarning
ModuleError
ModuleWarning
Opaque
OptionError
OptionWarning
QuantumDepth
QuantumRange
RegistryError
RegistryWarning
ResourceLimitError
ResourceLimitWarning
StreamError
StreamWarning
Success
Transparent
TypeError
TypeWarning
WarningException
XServerError
XServerWarning
Você pode acessá-las assim:
Image::Magick->QuantumDepth