⚠️ Ini adalah situs terjemahan tidak resmi dan tidak berafiliasi dengan ImageMagick Studio LLC. Untuk informasi resmi, lihat halaman asli (https://imagemagick.org/perl-magick/).

Instalasi • Ikhtisar • Skrip contoh • Membaca atau menulis gambar • Memanipulasi gambar • Mengatur atribut gambar • Mendapatkan atribut gambar • Membandingkan gambar dengan rekonstruksinya • Membuat montase gambar • Bekerja dengan blob • Akses langsung ke piksel gambar • Metode lain-lain • Menangani exception• Konstanta

PerlMagick adalah antarmuka Perl berorientasi objek untuk ImageMagick. Gunakan modul ini untuk membaca, memanipulasi, atau menulis gambar atau urutan gambar dari dalam skrip Perl. Ini membuatnya sangat cocok untuk skrip Web CGI. Anda harus memiliki ImageMagick 6.5.5 atau yang lebih baru dan Perl versi 5.005_02 atau yang lebih baru terinstal di sistem Anda agar PerlMagick dapat dibangun dengan benar.

Ada sejumlah skrip berguna yang tersedia untuk menunjukkan nilai PerlMagick. Anda dapat melakukan manipulasi dan konversi gambar berbasis Web dengan MagickStudio, atau menggunakan L-systems untuk membuat gambar tumbuhan menggunakan konstruksi matematis, dan terakhir menelusuri koleksi gambar thumbnail serta memilih gambar yang ingin dilihat dengan WebMagick Image Navigator.

Anda dapat mencoba PerlMagick dari browser Web Anda di ImageMagick Studio. Atau, Anda dapat melihat contoh beberapa fungsi PerlMagick pilihan.

Instalasi

UNIX

Apakah PerlMagick tersedia dari repositori RPM sistem Anda? Misalnya, pada sistem CentOS kami, kami menginstal PerlMagick sebagai berikut:

yum install ImageMagick-perl

Jika tidak, Anda harus menginstal PerlMagick dari distribusi sumber ImageMagick. Unduh rilis sumber terbaru.

Ekstrak distribusi tersebut dengan perintah berikut:

tar xvzf ImageMagick.tar.gz

Selanjutnya, konfigurasikan dan kompilasi ImageMagick:

cd ImageMagick-7.1.2-25
./configure -with-perl
make

Jika ImageMagick / PerlMagick berhasil dikonfigurasi dan dikompilasi tanpa keluhan, Anda siap menginstalnya pada sistem Anda. Hak akses administrator diperlukan untuk instalasi. Untuk menginstal, ketik

sudo make install

Anda mungkin perlu mengonfigurasi binding run-time dari dynamic linker:

sudo ldconfig /usr/local/lib

Terakhir, untuk memverifikasi bahwa instalasi PerlMagick berjalan dengan benar, ketik

perl -MImage::Magick -le 'print Image::Magick->QuantumDepth'

Selamat, Anda sekarang memiliki distribusi ImageMagick yang berfungsi dan siap menggunakan PerlMagick untuk mengonversi, menyusun, atau mengedit gambar Anda.

Windows XP / Windows 2000

ImageMagick harus sudah terinstal pada sistem Anda. Selain itu, distribusi sumber ImageMagick untuk Windows 2000 diperlukan. Anda juga harus memiliki nmake dari lingkungan pengembangan Visual C++ atau J++. Salin \bin\IMagick.dll dan \bin\X11.dll ke direktori dalam dynamic load path Anda, seperti c:\perl\site\5.00502.

Selanjutnya, ketik

cd PerlMagick
perl Makefile.nt
nmake
nmake install

Menjalankan Uji Regresi

Untuk memverifikasi instalasi yang benar, ketik

make test

Gunakan nmake test pada Windows. Ada beberapa skrip demonstrasi yang tersedia untuk menguji banyak fungsi yang dapat dilakukan PerlMagick. Ketik

Gunakan utilitas prove untuk menjalankan pengujian dari direktori build:

prove --blib blib -I `pwd` -bv ./t/read.t



cd demo
make

Sekarang Anda siap menggunakan metode PerlMagick dari dalam skrip Perl Anda.

Ikhtisar

Skrip mana pun yang ingin menggunakan metode PerlMagick harus terlebih dahulu mendefinisikan metode-metode tersebut dalam namespace-nya dan membuat instance objek gambar. Lakukan ini dengan:

use Image::Magick;

$image = Image::Magick->new;

PerlMagick bersifat quantum aware. Anda dapat meminta kedalaman quantum tertentu saat membuat instance objek gambar:

use Image::Magick::Q16;

$image = Image::Magick::Q16->new;

Metode new() menerima parameter yang sama dengan SetAttribute. Misalnya,

$image = Image::Magick->new(size=>'384x256');

Selanjutnya Anda akan ingin membaca gambar atau urutan gambar, memanipulasinya, lalu menampilkan atau menulisnya. Metode input dan output PerlMagick didefinisikan dalam Membaca atau menulis gambar. Lihat Mengatur atribut gambar untuk metode yang memengaruhi cara gambar dibaca atau ditulis. Lihat Memanipulasi gambar untuk daftar metode untuk mentransformasi gambar. Mendapatkan atribut gambar menjelaskan cara mengambil atribut suatu gambar. Lihat Membuat montase gambar untuk detail tentang menyusun gambar Anda sebagai thumbnail pada latar belakang. Terakhir, beberapa metode tidak cocok secara rapi ke kategori mana pun yang baru disebutkan. Lihat Metode lain-lain untuk daftar metode tersebut.

Setelah selesai menggunakan objek PerlMagick, Anda sebaiknya mempertimbangkan untuk menghancurkannya. Setiap gambar dalam urutan gambar disimpan dalam memori virtual. Ini berpotensi mencapai beberapa mebibyte memori. Setelah objek PerlMagick dihancurkan, memori dikembalikan untuk digunakan oleh metode Perl lainnya. Cara yang direkomendasikan untuk menghancurkan objek adalah dengan undef:

undef $image;

Untuk menghapus semua gambar tetapi tetap mempertahankan objek Image::Magick, gunakan

@$image = ();

dan terakhir, untuk menghapus satu gambar dari urutan multi-gambar, gunakan

undef $image->[$x];

Bagian berikutnya menggambarkan cara menggunakan berbagai metode PerlMagick untuk memanipulasi urutan gambar.

Beberapa metode PerlMagick memerlukan program eksternal seperti Ghostscript. Ini mungkin memerlukan path eksplisit dalam variabel lingkungan PATH Anda agar berfungsi dengan benar. Misalnya (pada Linux),

$ENV{PATH}' . "='/../bin:/usr/bin:/usr/local/bin';

Skrip contoh

Berikut adalah skrip contoh untuk membantu Anda memulai:

#!/usr/local/bin/perl
use Image::Magick;

my($image, $x);

$image = Image::Magick->new;
$x = $image->Read('girl.png', 'logo.png', 'rose.png');
warn "$x" if "$x";

$x = $image->Crop(geometry=>'100x100+100+100');
warn "$x" if "$x";

$x = $image->Write('x.png');
warn "$x" if "$x";

Skrip ini membaca tiga gambar, memangkasnya, dan menulis satu gambar sebagai urutan animasi GIF. Dalam banyak kasus, Anda mungkin ingin mengakses masing-masing gambar dalam suatu urutan. Contoh berikutnya menggambarkan cara melakukannya:

#!/usr/local/bin/perl
use Image::Magick;

my($image, $p, $q);

$image = new Image::Magick;
$image->Read('x1.png');
$image->Read('j*.jpg');
$image->Read('k.miff[1, 5, 3]');
$image->Contrast();
for ($x = 0; $image->[$x]; $x++)
{
  $image->[$x]->Frame('100x200') if $image->[$x]->Get('magick') eq 'GIF';
  undef $image->[$x] if $image->[$x]->Get('columns') < 100;
}
$p = $image->[1];
$p->Draw(stroke=>'red', primitive=>'rectangle', points=>20,20 100,100');
$q = $p->Montage();
undef $image;
$q->Write('x.miff');

Misalkan Anda ingin memulai dengan kanvas putih berukuran 100 kali 100 piksel dengan satu piksel merah di tengahnya. Coba

$image = Image::Magick->new;
$image->Set(size=>'100x100');
$image->ReadImage('canvas:white');
$image->Set('pixel[49,49]'=>'red');

Di sini kita mengurangi intensitas komponen merah pada (1,1) menjadi setengahnya:

@pixels = $image->GetPixel(x=>1,y=>1);
$pixels[0]*=0.5;
$image->SetPixel(x=>1,y=>1,color=>\@pixels);

Atau misalkan Anda ingin mengonversi gambar berwarna Anda menjadi grayscale:

$image->Quantize(colorspace=>'gray');

Mari kita beri anotasi pada gambar dengan font TrueType Taipai:

$text = 'Works like magick!';
$image->Annotate(font=>'kai.ttf', pointsize=>40, fill=>'green', text=>$text);

Barangkali Anda ingin mengekstrak semua intensitas piksel dari gambar dan menuliskannya ke STDOUT:

@pixels = $image->GetPixels(map=>'I', height=>$height, width=>$width, normalize=>true);
binmode STDOUT;
print pack('B*',join('',@pixels));

Hal-hal cerdas lain yang dapat Anda lakukan dengan objek PerlMagick meliputi

$i = $#$p"+1";   # mengembalikan jumlah gambar yang terkait dengan objek p
push(@$q, @$p);  # push gambar dari objek p ke objek q
@$p = ();        # menghapus gambar tetapi tidak objek p
$p->Convolve([1, 2, 1, 2, 4, 2, 1, 2, 1]);   # kernel Gauss 3x3

Membaca atau menulis gambar

Gunakan metode yang tercantum di bawah ini untuk membaca, menulis, atau menampilkan gambar atau urutan gambar:

Metode Membaca atau Menulis Metode Parameter Nilai Kembali Deskripsi
Read one or more filenames the number of images read membaca gambar atau urutan gambar
Write filename the number of images written menulis gambar atau urutan gambar
Display server name the number of images displayed menampilkan gambar atau urutan gambar ke server X
Animate server name the number of images animated menganimasikan urutan gambar ke server X

Untuk kemudahan, metode Write(), Display(), dan Animate() dapat menerima parameter apa pun yang dikenali oleh SetAttribute. Misalnya,

$image->Write(filename=>'image.png', compression=>'None');

Gunakan - sebagai nama file untuk metode Read() agar membaca dari standard in, atau untuk metode Write() agar menulis ke standard out:

binmode STDOUT;
$image->Write('png:-');

Untuk membaca gambar berformat GIF dari filehandle PERL, gunakan:

$image = Image::Magick->new;
open(IMAGE, 'image.gif');
$image->Read(file=>\*IMAGE);
close(IMAGE);

Untuk menulis gambar berformat PNG ke filehandle PERL, gunakan:

$filename = "image.png";
open(IMAGE, ">$filename");
$image->Write(file=>\*IMAGE, filename=>$filename);
close(IMAGE);

Perlu diperhatikan, membaca dari atau menulis ke filehandle Perl dapat gagal pada Windows karena perbedaan versi pustaka (library) C-runtime antara ImageMagick dan distribusi ActiveState Perl, atau jika salah satu DLL ditautkan dengan opsi /MT. Lihat Potential Errors Passing CRT Objects Across DLL Boundaries untuk penjelasannya.

Jika %0Nd, %0No, atau %0Nx muncul dalam nama file, ini akan diinterpretasikan sebagai spesifikasi format printf, dan spesifikasi tersebut digantikan dengan encoding desimal, oktal, atau heksadesimal dari nomor scene yang ditentukan. Misalnya,

image%03d.miff

mengonversi file image000.miff, image001.miff, dst.

Anda dapat secara opsional menambahkan Image ke nama metode apa pun. Misalnya, ReadImage() adalah alias untuk metode Read().

Memanipulasi gambar

Setelah Anda membuat gambar, misalnya dengan metode ReadImage(), Anda mungkin ingin mengoperasikannya. Berikut adalah daftar semua metode manipulasi gambar yang tersedia untuk Anda di PerlMagick. Ada contoh beberapa metode PerlMagick pilihan. Berikut adalah contoh pemanggilan metode manipulasi gambar:

$image->Crop(geometry=>'100x100+10+20');
$image->[$x]->Frame("100x200");

Dan berikut adalah daftar metode manipulasi gambar lain yang dapat Anda panggil:

Metode Manipulasi Gambar Metode Parameter Deskripsi
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} mem-blur gambar secara adaptif dengan operator Gauss dari radius dan deviasi standar (sigma) yang diberikan. Kurangi efeknya di dekat tepi.
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 mengubah ukuran gambar secara adaptif menggunakan triangulasi yang bergantung pada data. Tentukan blur > 1 untuk hasil buram atau < 1 untuk hasil tajam
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} menajamkan gambar secara adaptif dengan operator Gauss dari radius dan deviasi standar (sigma) yang diberikan. Tingkatkan efeknya di dekat tepi.
AdaptiveThreshold geometry=>geometry , width=>integer , height=>integer , bias=>double ambang batas adaptif lokal.
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} menambahkan noise pada gambar
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 mentransformasi gambar secara afin
Affinity image=>image-handle , method=>{None, FloydSteinberg, Riemersma} memilih sekumpulan warna tertentu dari gambar ini
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} memberi anotasi teks pada gambar. Lihat QueryFontMetrics untuk mendapatkan metrik font tanpa merender teks apa pun.
AutoGamma channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} menyesuaikan level gamma gambar secara otomatis
AutoLevel channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} menyesuaikan level warna gambar secara otomatis
AutoOrient
menyesuaikan orientasi gambar agar sesuai untuk dilihat (yaitu orientasi kiri-atas)
AutoThreshold method=>{Kapur, OTSU, Triangle} melakukan ambang batas gambar secara otomatis
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} filter penghalusan non-linear yang menjaga tepi dan mengurangi noise pada gambar. Filter ini mengganti intensitas setiap piksel dengan rata-rata tertimbang dari nilai intensitas piksel di sekitarnya. Bobot ini didasarkan pada distribusi Gauss. Bobot tidak hanya bergantung pada jarak Euclidean antar piksel, tetapi juga pada perbedaan radiometrik (misalnya perbedaan rentang seperti intensitas warna, jarak kedalaman, dll). Ini menjaga tepi tetap tajam. Nilai default untuk sigma intensitas dan spasial masing-masing adalah 2diameter dan 0.5diameter.
BlackThreshold threshold=>color , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} memaksa semua piksel di bawah intensitas ambang batas menjadi hitam
BlueShift factor=>double , menyimulasikan pemandangan malam hari di bawah cahaya bulan. Mulai dengan factor 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} mengurangi noise gambar dan tingkat detail dengan operator Gauss dari radius dan deviasi standar (sigma) yang diberikan.
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 }, mengelilingi gambar dengan border berwarna
CannyEdge geometry=>geometry , radius=>double , sigma=>double , 'lower-percent'=>double , 'upper-percent'=>double menggunakan algoritma multi-tahap untuk mendeteksi berbagai tepi pada gambar (misalnya CannyEdge('0x1+10%+40%')).
Charcoal geometry=>geometry , radius=>double , sigma=>double menyimulasikan gambar arang (charcoal)
Chop geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} memotong gambar (chop)
CLAHE geometry=>geometry , width=>integer , height=>integer , number-bins=>integer , clip-limit=>double ekualisasi histogram adaptif dengan batas kontras (CLAHE). width dan height membagi gambar menjadi tile. number-bins adalah jumlah bin histogram per tile (minimal 2, maksimal 256). clip-limit adalah batas kontras untuk perubahan kontras lokal. clip-limit 2 hingga 3 adalah titik awal yang baik.
Clamp channel=>{Red, RGB, All, etc.} mengatur setiap piksel yang nilainya di bawah nol menjadi nol, dan piksel yang nilainya di atas rentang kuantum menjadi rentang kuantum (misalnya 65535); selain itu nilai piksel tidak berubah.
Clip id=>name , inside=>{true, false} , menerapkan sepanjang path bernama dari profil 8BIM.
ClipMask mask=>image-handle memotong (clip) gambar sesuai yang didefinisikan oleh mask gambar
Clut image=>image-handle , interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, channel=>{Red, RGB, All, etc.} menerapkan tabel pencarian warna (color lookup table) pada urutan gambar
Color color=>color name mengatur seluruh gambar ke warna ini.
ColorDecisionList filename=>string , mengoreksi warna dengan color decision list.
Colorize fill=>color name , blend=>string mewarnai gambar dengan warna fill
ColorMatrix matrix=>array of float values menerapkan koreksi warna pada gambar. Anda dapat menggunakan matriks berukuran variabel, tetapi biasanya digunakan matriks 5x5 untuk gambar RGBA dan 6x6 untuk CMYKA. Matriks 6x6 diperlukan untuk offset (isi kolom terakhir dengan nilai yang dinormalisasi).
Colorspace colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK} mengatur ruang warna gambar
Comment string menambahkan komentar pada gambar Anda
ColorThreshold start-color=>color , stop-color=>color , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} memaksa semua piksel di bawah intensitas ambang batas menjadi hitam
CompareLayers method=>{any, clear, overlay} membandingkan setiap gambar dengan gambar berikutnya dalam urutan dan mengembalikan wilayah pembatas minimum dari perbedaan piksel yang ditemukan. Gambar tidak harus berukuran sama, meskipun idealnya semua gambar telah di-coalesce (semua gambar berukuran sama, pada kanvas yang diratakan, sehingga secara tepat merepresentasikan tampilan frame tertentu).
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} mengomposisikan satu gambar ke gambar lain. Gunakan parameter rotate bersama dengan parameter tile.
ConnectedComponents connectivity=>integer , memberi label unik pada connected-components; pilih konektivitas 4 arah atau 8 arah.
Contrast sharpen=>{True, False} meningkatkan atau mengurangi kontras gambar
ContrastStretch levels=>string , 'black-point'=>double , 'white-point'=>double , channel=>{Red, RGB, All, etc.} meningkatkan kontras pada gambar dengan cara `meregangkan' rentang nilai intensitas
Convolve coefficients=>array of float values , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>double menerapkan kernel konvolusi pada gambar. Untuk kernel dengan order tertentu, Anda perlu menyediakan order*order nilai float (misalnya 3x3 berarti 9 nilai).
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 menyalin piksel dari gambar sesuai yang didefinisikan oleh widthxheight+x+y ke gambar pada offset +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} memangkas (crop) gambar
CycleColormap amount=>integer menggeser colormap gambar sejumlah amount
Decipher passphrase=>string mengonversi piksel cipher menjadi piksel plain
Deconstruct
memecah urutan gambar menjadi bagian-bagian penyusunnya
Deskew geometry=>string ,threshold=>double meluruskan gambar
Despeckle mengurangi speckle pada gambar
Difference image=>image-handle menghitung metrik perbedaan antara dua gambar
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} mendistorsi gambar
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} memberi anotasi pada gambar dengan satu atau lebih primitif grafis.
Encipher passphrase=>string mengonversi piksel plain menjadi piksel cipher
Edge radius=>double menonjolkan tepi pada gambar dengan filter konvolusi dari radius yang diberikan.
Emboss geometry=>geometry , radius=>double , sigma=>double mengukir timbul (emboss) gambar dengan filter konvolusi dari radius dan deviasi standar (sigma) yang diberikan.
Enhance
menerapkan filter digital untuk meningkatkan kualitas gambar yang mengandung noise
Equalize channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}
melakukan ekualisasi histogram pada gambar
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} mengatur ukuran gambar
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} menerapkan ekspresi aritmetika, relasional, atau logika pada gambar
Filter kernel=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>double menerapkan kernel konvolusi pada gambar.
Flip
membalik scanline gambar secara vertikal
Flop
membalik scanline gambar secara 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} mengubah nilai warna piksel mana pun yang cocok dengan warna piksel target dan bertetangga dengannya. Jika Anda menentukan warna border, nilai warna diubah untuk setiap piksel tetangga yang bukan warna tersebut.
ForwardFourierTransform magnitude=>{True, False} mengimplementasikan transformasi Fourier diskret maju (DFT)
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 }, mengelilingi gambar dengan border ornamen
Function parameters=>array of float values , function=>{Sin}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} menerapkan fungsi pada gambar
Gamma gamma=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} mengoreksi gamma gambar
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} mengurangi noise gambar dan tingkat detail dengan operator Gauss dari radius dan deviasi standar (sigma) yang diberikan.
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 mendapatkan satu piksel. Secara default, nilai piksel yang dinormalisasi dikembalikan.
GetPixels geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , map=>string , normalize=>{true, false} mendapatkan piksel gambar sesuai yang didefinisikan oleh map (misalnya "RGB", "RGBA", dll). Secara default, nilai piksel yang tidak dinormalisasi dikembalikan.
Grayscale channel=>{Average, Brightness, Lightness, Rec601Luma, Rec601Luminance, Rec709Luma, Rec709Luminance, RMS} mengonversi gambar menjadi grayscale
HaldClut image=>image-handle , channel=>{Red, RGB, All, etc.} menerapkan tabel pencarian warna Hald pada urutan gambar
HoughLine geometry=>geometry , width=>double , height=>double , threshold=>double mengidentifikasi garis pada gambar (misalnya HoughLine('9x9+195')).
Identify file=>file , features=>distance , moments=>{True, False}, unique=>{True, False} mengidentifikasi atribut gambar
Implode amount=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} menciutkan (implode) piksel gambar ke arah pusat
Integral menghitung jumlah nilai (nilai piksel) pada gambar.
InverseDiscreteFourierTransform magnitude=>{True, False} mengimplementasikan transformasi Fourier diskret invers (DFT)
Kmeans geometry=>geometry , 'colors'=>double , 'iterations'=>double , 'tolerance'=>double reduksi warna dengan K-means.
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} filter pengurangan noise yang menjaga tepi
Label string menetapkan label pada gambar
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} membandingkan setiap gambar dengan bentuk dispose GIF dari gambar sebelumnya dalam urutan. Dari sini, dicoba dipilih gambar terpangkas terkecil untuk menggantikan setiap frame, sambil menjaga hasil animasi.
Level levels=>string , 'black-point'=>double , 'gamma'=>double , 'white-point'=>double , channel=>{Red, RGB, All, etc.} menyesuaikan level kontras gambar
LevelColors invert=>>{True, False}, 'black-point'=>string , 'white-point'=>string , channel=>{Red, RGB, All, etc.} melakukan level pada gambar dengan warna yang diberikan
LinearStretch levels=>string , 'black-point'=>double , 'white-point'=>double peregangan linear dengan saturasi
LiquidResize geometry=>geometry , width=>integer , height=>integer , delta-x=>double , rigidity=>double mengubah skala gambar dengan seam-carving.
Magnify
menggandakan ukuran gambar dengan penskalaan pixel art
Mask mask=>image-handle mengomposisikan piksel gambar sesuai yang didefinisikan oleh mask
MatteFloodfill geometry=>geometry , x=>integer , y=>integer , matte=>integer , bordercolor=>color name , fuzz=>double , invert=>{True, False} mengubah nilai matte piksel mana pun yang cocok dengan warna piksel target dan bertetangga dengannya. Jika Anda menentukan warna border, nilai matte diubah untuk setiap piksel tetangga yang bukan warna tersebut.
MeanShift geometry=>geometry , width=>double , height=>double , distance=>double membatasi klaster berbentuk sembarang pada gambar (misalnya 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} mengganti setiap piksel dengan piksel intensitas median dari lingkungan sekitarnya.
Minify
mengecilkan ukuran gambar menjadi setengahnya
Mode geometry=>geometry , width=>integer , height=>integer , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} menjadikan setiap piksel sebagai warna yang paling dominan dalam lingkungan sekitarnya.
Modulate factor=>geometry , brightness=>double , saturation=>double , hue=>double , lightness=>double , whiteness=>double , blackness=>double mengubah kecerahan, saturasi, dan hue gambar sebesar persentase yang ditentukan
Morphology kernel=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, iterations=>integer menerapkan metode morfologi pada gambar.
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} mengurangi noise gambar dan tingkat detail dengan operator Gauss dari radius dan deviasi standar (sigma) yang diberikan pada sudut tertentu untuk menyimulasikan efek gerakan
Negate gray=>{True, False}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} mengganti setiap piksel dengan warna komplementernya (putih menjadi hitam, kuning menjadi biru, dll)
Normalize channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}
mentransformasi gambar agar mencakup seluruh rentang nilai warna
OilPaint radius=>integer menyimulasikan lukisan cat minyak
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} mengubah warna ini menjadi warna fill di dalam gambar
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} melakukan ordered dither pada gambar
Perceptible epsilon=>double , channel=>{Red, RGB, All, etc.} mengatur setiap piksel yang nilainya kurang dari
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 menyimulasikan foto Polaroid.
Posterize levels=>integer , dither=>{True, False} mengurangi gambar menjadi sejumlah level warna terbatas
Profile name=>string , profile=>blob , rendering-intent=>{Undefined, Saturation, Perceptual, Absolute, Relative}, black-point-compensation=>{True, False} menambah atau menghapus profil gambar ICC atau IPTC; name adalah nama formal (misalnya ICC) atau nama file; atur profile ke '' untuk menghapus profil
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 jumlah warna yang diinginkan pada gambar
Raise geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer , raise=>{True, False} mencerahkan atau menggelapkan tepi gambar untuk menciptakan efek 3D
RangeThreshold geometry=>geometry , 'low-black'=>double , 'low-white'=>double , 'high-white'=>double , 'high-black'=>double menggabungkan ambang batas gambar yang lunak dan keras.
ReduceNoise geometry=>geometry , width=>integer , height=>integer , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} mengurangi noise pada gambar dengan filter eliminasi puncak noise
Remap image=>image-handle , dither=>{true, false}, dither-method=>{Riemersma, Floyd-Steinberg} mengganti warna gambar dengan warna terdekat dari gambar referensi.
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 melakukan resample gambar ke resolusi yang diinginkan. Tentukan blur > 1 untuk hasil buram atau < 1 untuk hasil tajam
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 menskalakan gambar ke ukuran yang diinginkan. Tentukan blur > 1 untuk hasil buram atau < 1 untuk hasil tajam
Roll geometry=>geometry , x=>integer , y=>integer menggulung (roll) gambar secara vertikal atau horizontal
Rotate degrees=>double , background=>color name memutar gambar
RotationalBlur geometry=>geometry , angle=>double , bias=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} mem-blur gambar secara radial.
Sample geometry=>geometry , width=>integer , height=>integer menskalakan gambar dengan sampling piksel.
Scale geometry=>geometry , width=>integer , height=>integer menskalakan gambar ke ukuran yang diinginkan
Segment colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK}, verbose={True, False}, cluster-threshold=>double , smoothing-threshold=double melakukan segmentasi gambar dengan menganalisis histogram komponen warna dan mengidentifikasi unit yang homogen
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} mem-blur piksel secara selektif dalam ambang batas kontras.
Separate channel=>{Red, RGB, All, etc.} memisahkan satu kanal dari gambar menjadi gambar grayscale
Shade geometry=>geometry , azimuth=>double , elevation=>double , gray=>{true, false} memberi bayangan pada gambar menggunakan sumber cahaya jauh
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 mengatur nilai satu piksel. Nilai piksel yang dinormalisasi diharapkan.
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 mengatur nilai satu atau lebih piksel. Nilai piksel yang dinormalisasi diharapkan.
Shadow geometry=>geometry , opacity=>double , sigma=>double , x=>integer , y=>integer menyimulasikan bayangan gambar
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} menajamkan gambar dengan operator Gauss dari radius dan deviasi standar (sigma) yang diberikan.
Shave geometry=>geometry , width=>integer , height=>integer mencukur piksel dari tepi gambar
Shear geometry=>geometry , x=>double , y=>double fill=>color name memiringkan (shear) gambar di sepanjang sumbu X atau Y dengan sudut shear positif atau negatif
SigmoidalContrast geometry=>string , 'contrast'=>double , 'mid-point'=>double channel=>{Red, RGB, All, etc.}, sharpen=>{True, False} kontrol kontras non-linear sigmoidal. Meningkatkan kontras gambar menggunakan fungsi transfer sigmoidal tanpa membuat highlight atau shadow menjadi saturasi. contrast menunjukkan seberapa besar kontras ditingkatkan (0 berarti tidak ada; 3 tipikal; 20 sangat besar); mid-point menunjukkan di mana midtone jatuh pada gambar hasil (0 putih; 50% abu-abu tengah; 100% hitam). Untuk mengurangi kontras, atur sharpen ke False.
Signature
menghasilkan message digest SHA-256 untuk stream piksel gambar
Sketch geometry=>geometry , radius=>double , sigma=>double , angle=>double membuat sketsa gambar dengan operator Gauss dari radius dan deviasi standar (sigma) yang diberikan pada sudut tertentu
Solarize geometry=>string , threshold=>double , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} menegasikan semua piksel di atas level ambang batas
SortPixels
mengurutkan piksel dalam setiap scanline berdasarkan intensitas secara menaik.
SparseColor points=>array of float values , method=>{Barycentric, Bilinear, Shepards, Voronoi}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} menginterpolasi warna gambar di sekitar titik yang diberikan
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} menyisipkan (splice) pada gambar
Spread radius=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} menggeser piksel gambar sejumlah nilai acak
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} mengganti setiap piksel dengan statistik terkait dari lingkungan sekitarnya.
Stegano image=>image-handle , offset=>integer menyembunyikan watermark digital di dalam gambar
Stereo image=>image-handle , x=>integer , y=>integer mengomposisikan dua gambar dan menghasilkan satu gambar yang merupakan komposit dari gambar kiri dan kanan pasangan stereo
Strip
menghapus semua profil dan komentar dari gambar.
Swirl degrees=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} memutar pusar (swirl) piksel gambar di sekitar pusat
Texture texture=>image-handle nama tekstur untuk di-tile pada latar belakang gambar
Thumbnail geometry=>geometry , width=>integer , height=>integer mengubah ukuran gambar ke dimensi yang diberikan dan menghapus profil terkait.
Threshold threshold=>string , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} menerapkan ambang batas pada gambar
Tint fill=>color name , blend=>string memberi tint pada gambar dengan warna fill.
Transparent color=>color name , invert=>{True, False} membuat warna ini transparan di dalam gambar
Transpose
membalik gambar secara vertikal dan memutar 90 derajat
Transverse
membalik gambar secara horizontal dan memutar 270 derajat
Trim
menghapus tepi yang berwarna latar belakang dari gambar
UnsharpMask geometry=>geometry , radius=>double , sigma=>double , gain=>double , threshold=>double menajamkan gambar dengan algoritma unsharp mask.
Vignette geometry=>geometry , radius=>double , sigma=>double , x=>integer , y=>integer , background=>color name meng-offset tepi gambar dalam gaya vignette
Wave geometry=>geometry , amplitude=>double , wavelength=>double , interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} mengubah gambar mengikuti gelombang sinus
WaveDenoise geometry=>geometry , threshold=>double , threshold=>double menghapus noise dari gambar menggunakan transformasi wavelet
WhiteBalance menerapkan white balance pada gambar berdasarkan asumsi grayworld dalam ruang warna LAB.
WhiteThreshold threshold=>string , , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} memaksa semua piksel di atas intensitas ambang batas menjadi putih

Perlu diperhatikan, parameter geometry adalah singkatan untuk parameter width dan height (misalnya geometry=>'106x80' setara dengan width=>106, height=>80 ).

Anda dapat menentukan @filename baik pada Annotate() maupun Draw(). Ini membaca instruksi teks atau primitif grafis dari file pada disk. Misalnya,

image->Draw(fill=>'red', primitive=>'rectangle',
 points=>'20,20 100,100  40,40 200,200  60,60 300,300');

Setara dengan

$image->Draw(fill=>'red', primitive=>'@draw.txt');

Di mana draw.txt adalah file pada disk yang berisi ini:

rectangle 20, 20 100, 100
rectangle 40, 40 200, 200
rectangle 60, 60 300, 300

Parameter text untuk metode Annotate(), Comment(), Draw(), dan Label() dapat menyertakan nama file gambar, tipe, lebar, tinggi, atau atribut gambar lainnya dengan menyisipkan karakter format khusus berikut:

%b   ukuran file
%c   komentar
%d   direktori
%e   ekstensi nama file
%f   nama file
%g   geometri halaman
%h   tinggi
%i   nama file input
%k   jumlah warna unik
%l   label
%m   magick
%n   jumlah scene
%o   nama file output
%p   nomor halaman
%q   kedalaman quantum
%r   kelas gambar dan ruang warna
%s   nomor scene
%t   bagian awal nama file
%u   nama file sementara unik
%w   lebar
%x   resolusi x
%y   resolusi y
%z   kedalaman gambar
%C   jenis kompresi gambar
%D   metode dispose gambar
%H   tinggi halaman
%Q   kualitas kompresi gambar
%T   delay gambar
%W   lebar halaman
%X   offset x halaman
%Y   offset y halaman
%@   bounding box
%#   signature
%%   tanda persen
\n   baris baru (newline)
\r   carriage return

Misalnya,

text=>"%m:%f %wx%h"

menghasilkan anotasi MIFF:bird.miff 512x480 untuk gambar berjudul bird.miff yang lebarnya 512 dan tingginya 480.

Anda dapat secara opsional menambahkan Image ke nama metode apa pun. Misalnya, TrimImage() adalah alias untuk metode Trim().

Sebagian besar atribut yang tercantum di atas memiliki padanan dalam magick. Lihat dokumentasi untuk deskripsi yang lebih rinci tentang atribut-atribut ini.

Mengatur atribut gambar

Gunakan metode Set() untuk mengatur atribut gambar. Misalnya,

$image->Set(dither=>'True');
$image->[$x]->Set(delay=>3);

Ketika contoh ini menggunakan 'True' dan dokumen ini menyebutkan '{True, False}', Anda dapat menggunakan string 'True' dan 'False' yang tidak peka huruf besar/kecil (case-insensitive), atau Anda dapat menggunakan bilangan bulat 1 dan 0.

Ketika Anda memanggil Get() pada atribut Boolean, Image::Magick mengembalikan 1 atau 0, bukan string.

Dan berikut adalah daftar semua atribut gambar yang dapat Anda atur:

Atribut Gambar Atribut Nilai Deskripsi
adjoin {True, False} menggabungkan gambar menjadi satu file multi-gambar
alpha {On, Off, Opaque, Transparent, Copy, Extract, Set} kontrol dan operasi khusus yang melibatkan kanal alpha/matte
antialias {True, False} menghapus aliasing piksel
area-limit integer mengatur batas sumber daya area piksel.
attenuate double mengurangi (atau memperkuat) saat menambahkan noise pada gambar.
authenticate string mendekripsi gambar dengan password ini.
background color name warna latar belakang gambar
blue-primary x-value , y-value titik primer biru kromatisitas (misalnya 0.15, 0.06)
bordercolor color name mengatur warna border gambar
clip-mask image mengaitkan clip mask dengan gambar.
colormap[i] color name nama warna (misalnya red) atau nilai hex (misalnya #ccc) pada posisi i
comment string mengatur komentar gambar
compression {None, BZip, Fax, Group4, JPEG, JPEG2000, LosslessJPEG, LZW, RLE, Zip} jenis kompresi gambar
debug {All, Annotate, Blob, Cache, Coder, Configure, Deprecate, Draw, Exception, Locale, None, Resource, Transform, X11} menampilkan informasi debug yang sangat rinci
delay integer sekian 1/100 detik harus berlalu sebelum menampilkan gambar berikutnya dalam urutan
density geometry resolusi vertikal dan horizontal gambar dalam piksel
depth integer kedalaman gambar
direction {Undefined, right-to-left, left-to-right merender teks dari kanan ke kiri atau kiri ke kanan
disk-limit integer mengatur batas sumber daya disk
dispose {Undefined, None, Background, Previous} metode disposal layer
dither {True, False} menerapkan error diffusion pada gambar
display string menentukan server X yang akan dihubungi
extract geometry mengekstrak area dari gambar
file filehandle mengatur filehandle gambar
filename string mengatur nama file gambar
fill color Warna fill mewarnai area mana pun di dalam garis luar bentuk yang digambar.
font string menggunakan font ini saat memberi anotasi teks pada gambar
fuzz integer warna dalam jarak ini dianggap sama
gamma double level gamma gambar
Gravity {Forget, NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} jenis gravity gambar
green-primary x-value , y-value titik primer hijau kromatisitas (misalnya 0.3, 0.6)
index[x , y] string indeks colormap pada posisi (x , y)
interlace {None, Line, Plane, Partition, JPEG, GIF, PNG} jenis skema interlacing
iterations integer menambahkan ekstensi loop Netscape ke animasi GIF Anda
label string mengatur label gambar
loop integer menambahkan ekstensi loop Netscape ke animasi GIF Anda
magick string mengatur format gambar
map-limit integer mengatur batas sumber daya map
mask image mengaitkan mask dengan gambar.
matte {True, False} mengaktifkan kanal matte gambar
mattecolor color name mengatur warna matte gambar
memory-limit integer mengatur batas sumber daya memori
monochrome {True, False} mentransformasi gambar menjadi hitam putih
option string mengaitkan opsi dengan format gambar (misalnya option=>'ps:imagemask'
orientation {TopLeft, TopRight, BottomRight, BottomLeft, LeftTop, RightTop, RightBottom, LeftBottom} orientasi gambar
page { Letter, Tabloid, Ledger, Legal, Statement, Executive, A3, A4, A5, B4, B5, Folio, Quarto, 10x14} or geometry ukuran dan lokasi kanvas gambar yang diinginkan
pixel[x , y] string nilai hex (misalnya #ccc) pada posisi (x , y)
pointsize integer pointsize font Postscript atau TrueType
precision integer mengatur jumlah maksimum digit signifikan yang dicetak
quality integer level kompresi JPEG/MIFF/PNG
red-primary x-value , y-value titik primer merah kromatisitas (misalnya 0.64, 0.33)
sampling-factor geometry faktor sampling horizontal dan vertikal
scene integer nomor scene gambar
server string menentukan server X yang akan dihubungi
size string lebar dan tinggi gambar raw
stroke color Warna stroke mewarnai sepanjang garis luar bentuk.
texture string nama tekstur untuk di-tile pada latar belakang gambar
tile-offset geometry offset tile gambar
time-limit integer mengatur batas sumber daya waktu dalam detik
title string mengatur judul gambar
type {Bilevel, Grayscale, GrayscaleMatte, Palette, PaletteMatte, TrueColor, TrueColorMatte, ColorSeparation, ColorSeparationMatte} jenis gambar
units { Undefined, PixelsPerInch, PixelsPerCentimeter} satuan resolusi gambar
verbose {True, False} mencetak informasi rinci tentang gambar
virtual-pixel {Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} metode virtual pixel
white-point x-value , y-value titik putih kromatisitas (misalnya 0.3127, 0.329)

Perlu diperhatikan, parameter geometry adalah singkatan untuk parameter width dan height (misalnya geometry=>'106x80' setara dengan width=>106, height=>80).

SetAttribute() adalah alias untuk metode Set().

Sebagian besar atribut yang tercantum di atas memiliki padanan dalam magick. Lihat dokumentasi untuk deskripsi yang lebih rinci tentang atribut-atribut ini.

Mendapatkan atribut gambar

Gunakan metode Get() untuk mendapatkan atribut gambar. Misalnya,

($a, $b, $c) = $image->Get('colorspace', 'magick', 'adjoin');
$width = $image->[3]->Get('columns');

Selain semua atribut yang tercantum dalam Mengatur atribut gambar, Anda dapat mendapatkan atribut tambahan berikut:

Atribut Gambar Atribut Nilai Deskripsi
area integer sumber daya area yang sedang digunakan
base-columns integer lebar gambar dasar (sebelum transformasi)
base-filename string nama file gambar dasar (sebelum transformasi)
base-rows integer tinggi gambar dasar (sebelum transformasi)
class {Direct, Pseudo} kelas gambar
colors integer jumlah warna unik pada gambar
columns integer lebar gambar
copyright string mendapatkan copyright PerlMagick
directory string nama tile dari dalam montase gambar
elapsed-time double waktu yang berlalu dalam detik sejak gambar dibuat
error double error rata-rata per piksel yang dihitung dengan metode Compare() atau Quantize()
bounding-box string bounding box gambar
disk integer sumber daya disk yang sedang digunakan
filesize integer jumlah byte gambar pada disk
format string mendapatkan format gambar deskriptif
geometry string geometri gambar
height integer jumlah baris atau tinggi gambar
icc string profil ICC
icc string profil ICM
id integer id registry ImageMagick
IPTC string profil IPTC
mean-error double error rata-rata ternormalisasi per piksel yang dihitung dengan metode Compare() atau Quantize()
map integer sumber daya memory-mapped yang sedang digunakan
matte {True, False} apakah gambar memiliki kanal matte atau tidak
maximum-error double error maksimum ternormalisasi per piksel yang dihitung dengan metode Compare() atau Quantize()
memory integer sumber daya memori yang sedang digunakan
mime string MIME dari format gambar
montage geometry ukuran dan offset tile dalam montase gambar
page.x integer offset x kanvas virtual gambar
page.y integer offset y kanvas virtual gambar
rows integer jumlah baris atau tinggi gambar
signature string message digest SHA-256 yang terkait dengan stream piksel gambar
taint {True, False} True jika gambar telah dimodifikasi
total-ink-density double mengembalikan densitas tinta total untuk gambar CMYK
transparent-color color name mengatur warna transparan gambar
user-time double waktu pengguna dalam detik sejak gambar dibuat
version string mendapatkan versi PerlMagick
width integer jumlah kolom atau lebar gambar
XMP string profil XMP
x-resolution integer resolusi x gambar
y-resolution integer resolusi y gambar

GetAttribute() adalah alias untuk metode Get().

Sebagian besar atribut yang tercantum di atas memiliki padanan dalam magick. Lihat dokumentasi untuk deskripsi yang lebih rinci tentang atribut-atribut ini.

Membandingkan gambar dengan rekonstruksinya

Secara matematis dan visual, beri anotasi perbedaan antara gambar dan rekonstruksinya dengan metode Compare(). Metode ini mendukung parameter berikut:

Parameter Compare Parameter Nilai Deskripsi
channel double memilih kanal gambar; defaultnya adalah semua kanal kecuali alpha.
fuzz double warna dalam jarak ini dianggap sama
image image-reference gambar rekonstruksi
metric AE, MAE, MEPP, MSE, PAE, PSNR, RMSE mengukur perbedaan antar gambar dengan metrik ini

Pada contoh ini, kita membandingkan logo ImageMagick dengan rekonstruksi yang telah ditajamkan:

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();

Selain root mean squared error yang dilaporkan sekitar 0.024, gambar perbedaan juga ditampilkan sehingga Anda dapat mengidentifikasi perbedaan antar gambar secara visual.

Membuat montase gambar

Gunakan metode Montage() untuk membuat gambar komposit dengan menggabungkan beberapa gambar terpisah. Gambar-gambar tersebut disusun sebagai tile pada gambar komposit, dengan nama gambar yang secara opsional muncul tepat di bawah masing-masing tile. Misalnya,

$image->Montage(geometry=>'160x160', tile=>'2x2', texture=>'granite:');

Dan berikut adalah daftar parameter Montage() yang dapat Anda atur:

Parameter Montage Parameter Nilai Deskripsi
background color name nama warna latar belakang
border integer lebar border gambar
filename string nama gambar montase
fill color name warna fill untuk anotasi
font string nama font X11
frame geometry mengelilingi gambar dengan border ornamen
geometry geometry ukuran tile dan border yang diinginkan untuk setiap tile pada gambar komposit (misalnya 120x120+4+3>)
gravity NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast arah gambar bergravitasi di dalam tile
label string menetapkan label pada gambar
mode Frame, Unframe, Concatenate opsi framing thumbnail
pointsize integer pointsize font Postscript atau TrueType
shadow {True, False} menambahkan bayangan di bawah tile untuk menyimulasikan kedalaman
stroke color name warna stroke untuk anotasi
texture string nama tekstur untuk di-tile pada latar belakang gambar
tile geometry jumlah tile per baris dan halaman (misalnya 6x4)
title string menetapkan judul pada montase gambar
transparent string membuat warna ini transparan di dalam gambar

Perlu diperhatikan, parameter geometry adalah singkatan untuk parameter width dan height (misalnya geometry=>'106x80' setara dengan width=>106, height=>80).

MontageImage() adalah alias untuk metode Montage().

Sebagian besar atribut yang tercantum di atas memiliki padanan dalam montage. Lihat dokumentasi untuk deskripsi yang lebih rinci tentang atribut-atribut ini.

Bekerja dengan blob

Blob berisi data yang secara langsung merepresentasikan format gambar tertentu di dalam memori, bukan di disk. PerlMagick mendukung blob dalam salah satu format gambar berikut dan menyediakan metode untuk mengonversi blob ke atau dari format gambar tertentu.

Metode Blob Metode Parameter Nilai Kembali Deskripsi
ImageToBlob any image attribute an array of image data in the respective image format mengonversi gambar atau urutan gambar menjadi array blob
BlobToImage one or more blobs the number of blobs converted to an image mengonversi satu atau lebih blob menjadi gambar

ImageToBlob() mengembalikan data gambar dalam format masing-masing. Anda kemudian dapat mencetaknya, menyimpannya ke basis data ODBC, menuliskannya ke file, atau mem-pipe-nya ke program display:

@blobs = $image->ImageToBlob();
open(DISPLAY,"| display -") || die;
binmode DISPLAY;
print DISPLAY $blobs[0];
close DISPLAY;

Metode BlobToImage() mengembalikan gambar atau urutan gambar yang dikonversi dari blob yang diberikan:

@blob=$db->GetImage();
$image=Image::Magick->new(magick=>'jpg');
$image->BlobToImage(@blob);

Akses langsung ke piksel gambar

Gunakan metode berikut untuk mendapatkan akses langsung ke piksel gambar:

Akses Langsung ke Piksel Gambar Metode Parameter Deskripsi
GetAuthenticPixels geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer mengembalikan piksel authentic sebagai pointer C
GetVirtualPixels geometry=>geometry , width=>integer , height=>integer , x=>integer , y=>integer mengembalikan piksel virtual sebagai pointer const C
GetAuthenticIndexQueue mengembalikan indeks colormap atau piksel hitam sebagai pointer C
GetVirtualIndexQueue mengembalikan indeks colormap atau piksel hitam sebagai pointer const C
SyncAuthenticPixels menyinkronkan piksel authentic ke pixel cache

Metode lain-lain

Metode Append() menggabungkan sekumpulan gambar. Misalnya,

$p = $image->Append(stack=>{true,false});

menggabungkan semua gambar yang terkait dengan objek $image. Secara default, gambar disusun dari kiri ke kanan. Atur stack ke True untuk menyusunnya dari atas ke bawah.

Metode Clone() menyalin sekumpulan gambar. Misalnya,

$q = $p->Clone();

menyalin semua gambar dari objek $p ke $q. Anda dapat menggunakan metode ini untuk urutan gambar tunggal maupun multi-gambar.

Coalesce() mengomposisikan sekumpulan gambar dengan tetap memperhatikan offset halaman dan metode disposal. Urutan animasi GIF, MIFF, dan MNG biasanya dimulai dengan gambar latar belakang, dan setiap gambar berikutnya bervariasi dalam ukuran dan offset. Urutan gambar baru dikembalikan dengan semua gambar berukuran sama seperti kanvas virtual gambar pertama dan dikomposisikan dengan gambar berikutnya dalam urutan.. Misalnya,

$q = $p->Coalesce();

Metode ComplexImages() melakukan operasi matematika kompleks pada urutan gambar. Misalnya,

$p = $image->ComplexImages('conjugate');

Metode EvaluateImages() menerapkan ekspresi aritmetika, logika, atau relasional pada sekumpulan gambar. Misalnya,

$p = $image->EvaluateImages('mean');

merata-ratakan semua gambar yang terkait dengan objek $image.

Metode Features() mengembalikan fitur untuk setiap kanal pada gambar dalam masing-masing dari empat arah (horizontal, vertikal, diagonal kiri dan kanan) untuk jarak yang ditentukan. Fitur tersebut meliputi angular second momentum, contrast, correlation, sum of squares: variance, inverse difference moment, sum average, sum variance, sum entropy, entropy, difference variance, difference entropy, information measures of correlation 1, information measures of correlation 2, dan maximum correlation coefficient. Nilai dalam urutan RGB, CMYK, RGBA, atau CMYKA (tergantung jenis gambar).

@features = $image->Features(1);

Metode Flatten() meratakan (flatten) sekumpulan gambar dan mengembalikannya. Misalnya,

$p = $images->Flatten(background=>'none');
$p->Write('flatten.png');

Urutan gambar digantikan oleh satu gambar yang dibuat dengan mengomposisikan setiap gambar setelah gambar pertama di atas gambar pertama.

Metode Fx() menerapkan ekspresi matematika pada sekumpulan gambar dan mengembalikan hasilnya. Misalnya,

$p = $image->Fx(expression=>'(g+b)/2.0',channel=>'red');
$p->Write('fx.miff');

mengganti kanal merah dengan rata-rata kanal hijau dan biru.

Lihat FX, operator gambar efek khusus untuk pembahasan rinci tentang metode ini.

Histogram() mengembalikan warna unik pada gambar beserta jumlah masing-masing warna. Nilai yang dikembalikan berupa array nilai red, green, blue, opacity, dan count.

Metode Morph() melakukan morphing pada sekumpulan gambar. Baik piksel maupun ukuran gambar diinterpolasi secara linear untuk memberikan tampilan meta-morfosis dari satu gambar ke gambar berikutnya:

$p = $image->Morph(frames=>_integer_);

di mana frames adalah jumlah gambar antara yang akan dihasilkan. Nilai defaultnya adalah 1.

Mosaic() membuat mosaik dari urutan gambar.

Metode Mogrify() adalah satu titik masuk tunggal untuk metode-metode manipulasi gambar (Memanipulasi gambar). Parameternya adalah nama metode diikuti oleh parameter apa pun yang mungkin dibutuhkan metode tersebut. Misalnya, kedua pemanggilan berikut setara:

$image->Crop('340x256+0+0');
$image->Mogrify('crop', '340x256+0+0');

Metode MogrifyRegion() menerapkan transformasi pada suatu wilayah gambar. Metode ini mirip dengan Mogrify() tetapi diawali dengan geometri wilayah. Misalnya, misalkan Anda ingin mencerahkan wilayah 100x100 pada gambar Anda di lokasi (40, 50):

$image->MogrifyRegion('100x100+40+50', 'modulate', brightness=>50);

PerceptualHash() memetakan gambar yang identik secara visual ke hash yang sama atau serupa -- berguna untuk pencarian gambar (image retrieval), autentikasi, pengindeksan, atau deteksi salinan, serta watermarking digital. Untuk setiap kanal dan untuk ruang warna sRGB dan HCLp, 7 nilai hash dikembalikan. Untuk gambar sRGB, misalnya, diharapkan ada 42 perceptual hash.

@phash = $image->PerceptualHash();

Ping() adalah metode praktis yang mengembalikan informasi tentang gambar tanpa perlu membaca gambar ke dalam memori. Metode ini mengembalikan lebar, tinggi, ukuran file dalam byte, dan format file gambar. Anda dapat menentukan lebih dari satu nama file, tetapi hanya satu 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);

Ini adalah cara yang lebih efisien dan lebih hemat memori untuk memeriksa apakah suatu gambar ada dan bagaimana karakteristiknya.

Poly() membangun polinomial dari urutan gambar dan suku-suku terkait (pasangan koefisien dan derajat):

$p = $image->Poly([0.5,1.0,0.25,2.0,1.0,1.0]);

PreviewImage() menyusun 9 thumbnail dari gambar yang ditentukan dengan operasi pemrosesan gambar yang diterapkan pada berbagai tingkat kekuatan. Ini dapat membantu menentukan parameter yang tepat untuk operasi pemrosesan gambar tertentu. Pilih dari operasi berikut: 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. Berikut contohnya:

$preview = $image->Preview('Gamma');
$preview->Display();

Untuk memiliki kendali penuh atas penempatan teks, Anda memerlukan informasi metrik font. Gunakan

($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance) =
  $image->QueryFontMetrics(_parameters_);

Di mana parameters adalah parameter apa pun dari metode Annotate. Nilai yang dikembalikan adalah:

  1. lebar karakter
  2. tinggi karakter
  3. ascender
  4. descender
  5. lebar teks
  6. tinggi teks
  7. horizontal advance maksimum
  8. bounds: x1
  9. bounds: y1
  10. bounds: x2
  11. bounds: y2
  12. origin: x
  13. origin: y

Gunakan QueryMultilineFontMetrics() untuk mendapatkan lebar dan tinggi teks maksimum untuk beberapa baris teks.

Panggil QueryColor() tanpa parameter untuk mengembalikan daftar nama warna yang dikenal, atau tentukan satu atau lebih nama warna untuk mendapatkan atribut berikut: nilai red, green, blue, dan opacity.

@colors = $image->QueryColor();
($red, $green, $blue) = $image->QueryColor('cyan');
($red, $green, $blue, $alpha) = $image->QueryColor('#716baeff');

QueryColorname() menerima nilai warna dan mengembalikan nama atau nilai hex yang sesuai;

$name = $image->QueryColorname('rgba(80,60,0,0)');

Panggil QueryFont() tanpa parameter untuk mengembalikan daftar font yang dikenal, atau tentukan satu atau lebih nama font untuk mendapatkan atribut berikut: nilai font name, description, family, style, stretch, weight, encoding, foundry, format, metrics, dan glyphs.

@fonts = $image->QueryFont();
$weight = ($image->QueryFont('Helvetica'))[5];

Panggil QueryFormat() tanpa parameter untuk mengembalikan daftar format gambar yang dikenal, atau tentukan satu atau lebih nama format untuk mendapatkan atribut berikut: adjoin, blob support, raw, decoder, encoder, description, dan module.

@formats = $image->QueryFormat();
($adjoin, $blob_support, $raw, $decoder, $encoder, $description, $module) =
  $image->QueryFormat('gif');

Panggil MagickToMime() dengan nama format gambar untuk mendapatkan tipe MIME-nya, seperti image/tiff dari tif.

$mime = $image->MagickToMime('tif');

Gunakan RemoteCommand() untuk mengirim perintah ke aplikasi display atau animate yang sudah berjalan. Satu-satunya parameter adalah nama file gambar yang akan ditampilkan atau dianimasikan.

$image->RemoteCommand('image.jpg');

Metode Smush() menggabungkan (smush) sekumpulan gambar bersama-sama. Misalnya,

$p = $image->Smush(stack=>{true,false},offset=>integer);

menggabungkan bersama semua gambar yang terkait dengan objek $image. Secara default, gambar digabungkan dari kiri ke kanan. Atur stack ke True untuk menggabungkannya dari atas ke bawah.

Statistics() mengembalikan statistik gambar untuk setiap kanal pada gambar. Nilai yang dikembalikan berupa array nilai depth, minima, maxima, mean, standard deviation, kurtosis, skewness, dan entropy dalam urutan RGB, CMYK, RGBA, atau CMYKA (tergantung jenis gambar).

@statistics = $image->Statistics();

Terakhir, metode Transform() menerima spesifikasi geometry yang lengkap untuk memangkas atau mengubah ukuran satu atau lebih gambar. Misalnya,

$p = $image->Transform(crop=>'100x100+0+0');

Anda dapat secara opsional menambahkan Image ke nama metode apa pun di atas. Misalnya, PingImage() adalah alias untuk metode Ping().

Menangani exception

Semua metode PerlMagick mengembalikan konteks string undefined saat berhasil. Jika terjadi masalah, error dikembalikan sebagai string dengan kode status numerik yang disematkan. Kode status kurang dari 400 adalah warning. Ini berarti operasi tidak selesai tetapi masih dapat dipulihkan sampai tingkat tertentu. Kode numerik yang sama dengan atau lebih besar dari 400 adalah error dan menunjukkan operasi gagal sepenuhnya. Berikut adalah cara exception dikembalikan untuk metode yang berbeda-beda:

Metode yang mengembalikan angka (misalnya Read(), Write()):

$x = $image->Read(...);
warn "$x" if "$x";      # mencetak pesan error
$x =~ /(\d+)/;
print $1;               # mencetak nomor error
print 0+$x;             # mencetak jumlah gambar yang dibaca

Metode yang beroperasi pada gambar (misalnya Resize(), Crop()):

$x = $image->Crop(...);
warn "$x" if "$x";      # mencetak pesan error
$x =~ /(\d+)/;
print $1;               # mencetak nomor error

Metode yang mengembalikan gambar (EvaluateSequence(), Montage(), Clone()) sebaiknya diperiksa kesalahannya dengan cara berikut:

$x = $image->Montage(...);
warn "$x" if !ref($x);  # mencetak pesan error
$x =~ /(\d+)/;
print $1;               # mencetak nomor error

Berikut adalah contoh pesan error:

Error 400: Memory allocation failed

Lihat daftar lengkap kode error dan warning.

Berikut ini menggambarkan cara Anda dapat menggunakan kode status numerik:

$x = $image->Read('rose.png');
$x =~ /(\d+)/;
die "unable to continue" if ($1 == ResourceLimitError);

Konstanta

PerlMagick menyertakan konstanta berikut:

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

Anda dapat mengaksesnya seperti ini:

Image::Magick->QuantumDepth