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:
- lebar karakter
- tinggi karakter
- ascender
- descender
- lebar teks
- tinggi teks
- horizontal advance maksimum
- bounds: x1
- bounds: y1
- bounds: x2
- bounds: y2
- origin: x
- 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