mirror of
https://github.com/Imagick/imagick.git
synced 2026-06-19 07:35:36 +00:00
Added a few tests for coverage.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick module hasn't broken phpinfo
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
ob_start();
|
||||
phpinfo();
|
||||
$contents = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
if (strpos($contents, 'imagick module => enabled') !== false) {
|
||||
echo "Ok";
|
||||
}
|
||||
else {
|
||||
echo "Imagick was not reported as enabled?";
|
||||
var_dump($contents);
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, adaptiveResizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$width = 200;
|
||||
$height = 200;
|
||||
$bestFit = 1;
|
||||
|
||||
function adaptiveResizeImage($width, $height, $bestFit) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->adaptiveResizeImage($width, $height, $bestFit);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
adaptiveResizeImage($width, $height, $bestFit) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, adaptiveSharpenImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
$sigma = 1;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function adaptiveSharpenImage($radius, $sigma, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->adaptiveSharpenImage($radius, $sigma, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
adaptiveSharpenImage($radius, $sigma, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, adaptiveBlurImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
$sigma = 1;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function adaptiveBlurImage($radius, $sigma, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->adaptiveBlurImage($radius, $sigma, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
adaptiveBlurImage($radius, $sigma, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, adaptiveThresholdImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$width = 50;
|
||||
$height = 20;
|
||||
$adaptiveOffset = 0.125;
|
||||
|
||||
function adaptiveThresholdImage($width, $height, $adaptiveOffset) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$adaptiveOffsetQuantum = intval($adaptiveOffset * \Imagick::getQuantum());
|
||||
$imagick->adaptiveThresholdImage($width, $height, $adaptiveOffsetQuantum);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
adaptiveThresholdImage($width, $height, $adaptiveOffset) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Test Imagick, affineTransformImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function affineTransformImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$draw = new \ImagickDraw();
|
||||
|
||||
$angle = 40 ;
|
||||
|
||||
$affineRotate = array(
|
||||
"sx" => cos($angle), "sy" => cos($angle),
|
||||
"rx" => sin($angle), "ry" => -sin($angle),
|
||||
"tx" => 0, "ty" => 0,
|
||||
);
|
||||
|
||||
$draw->affine($affineRotate);
|
||||
|
||||
$imagick->affineTransformImage($draw);
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
affineTransformImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, addNoiseImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$noiseType = 2;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function addNoiseImage($noiseType, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->addNoiseImage($noiseType, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
addNoiseImage($noiseType, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, autoLevelImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function autoLevelImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->autoLevelImage();
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
autoLevelImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Test Imagick, annotateImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$strokeColor = 'rgb(0, 0, 0)';
|
||||
$fillColor = 'rgb(232, 227, 232)';
|
||||
|
||||
function annotateImage($strokeColor, $fillColor) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$draw = new \ImagickDraw();
|
||||
$draw->setStrokeColor($strokeColor);
|
||||
$draw->setFillColor($fillColor);
|
||||
|
||||
$draw->setStrokeWidth(1);
|
||||
$draw->setFontSize(36);
|
||||
|
||||
$text = "Imagick is a native php \nextension to create and \nmodify images using the\nImageMagick API.";
|
||||
|
||||
$imagick->annotateimage($draw, 40, 40, 0, $text);
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
annotateImage($strokeColor, $fillColor) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, blackThresholdImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$thresholdColor = 'rgb(127, 127, 127)';
|
||||
|
||||
function blackThresholdImage($thresholdColor) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->blackthresholdimage($thresholdColor);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
blackThresholdImage($thresholdColor) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, blueShiftImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$blueShift = 1.5;
|
||||
|
||||
function blueShiftImage($blueShift) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->blueShiftImage($blueShift);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
blueShiftImage($blueShift) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, blurImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
$sigma = 1;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function blurImage($radius, $sigma, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->blurImage($radius, $sigma, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
blurImage($radius, $sigma, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, brightnessContrastImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$brightness = -20;
|
||||
$contrast = -20;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function brightnessContrastImage($brightness, $contrast, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->brightnessContrastImage($brightness, $contrast, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
brightnessContrastImage($brightness, $contrast, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, borderImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$width = 50;
|
||||
$height = 20;
|
||||
$color = 'rgb(127, 127, 127)';
|
||||
|
||||
function borderImage($color, $width, $height) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->borderImage($color, $width, $height);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
borderImage($color, $width, $height) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, charcoalImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
$sigma = 1;
|
||||
|
||||
function charcoalImage($radius, $sigma) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->charcoalImage($radius, $sigma);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
charcoalImage($radius, $sigma) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, chopImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$startX = 50;
|
||||
$startY = 50;
|
||||
$width = 100;
|
||||
$height = 50;
|
||||
|
||||
function chopImage($startX, $startY, $width, $height) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->chopImage($width, $height, $startX, $startY);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
chopImage($startX, $startY, $width, $height) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, clutImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function clutImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
//$imagick->quantizeImage(16, \Imagick::COLORSPACE_YIQ, 8, true, false);
|
||||
|
||||
$clutImagick = new \Imagick();
|
||||
$clutImagick->newPseudoImage(640, 480, "magick:NETSCAPE");
|
||||
$imagick->clutImage($clutImagick);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
clutImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, colorizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$color = 'rgb(127, 127, 127)';
|
||||
$opacity = 100;
|
||||
|
||||
function colorizeImage($color, $opacity) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$opacity = $opacity / 255.0;
|
||||
$opacityColor = new \ImagickPixel("rgba(0, 0, 0, $opacity)");
|
||||
$imagick->colorizeImage($color, $opacityColor);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
colorizeImage($color, $opacity) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,69 @@
|
||||
--TEST--
|
||||
Test Imagick, colorMatrixImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$colorMatrix = array (
|
||||
0 => 1.5,
|
||||
1 => 0,
|
||||
2 => 0,
|
||||
3 => 0,
|
||||
4 => -0.157,
|
||||
5 => 0,
|
||||
6 => 1,
|
||||
7 => 0.5,
|
||||
8 => 0,
|
||||
9 => -0.157,
|
||||
10 => 0,
|
||||
11 => 0,
|
||||
12 => 0.5,
|
||||
13 => 0,
|
||||
14 => 0.5,
|
||||
15 => 0,
|
||||
16 => 0,
|
||||
17 => 0,
|
||||
18 => 1,
|
||||
19 => 0,
|
||||
20 => 0,
|
||||
21 => 0,
|
||||
22 => 0,
|
||||
23 => 0,
|
||||
24 => 1,
|
||||
);
|
||||
|
||||
function colorMatrixImage($colorMatrix) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->setImageOpacity(1);
|
||||
|
||||
//A color matrix should look like:
|
||||
// $colorMatrix = [
|
||||
// 1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
|
||||
// 0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
|
||||
// 0.0, 0.0, 1.5, 0.0, 0.0, -0.157,
|
||||
// 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,
|
||||
// 0.0, 0.0, 0.0, 0.0, 1.0, 0.0,
|
||||
// 0.0, 0.0, 0.0, 0.0, 0.0, 1.0
|
||||
// ];
|
||||
|
||||
$background = new \Imagick();
|
||||
$background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(), "pattern:checkerboard");
|
||||
|
||||
$background->setImageFormat('png');
|
||||
|
||||
$imagick->setImageFormat('png');
|
||||
$imagick->colorMatrixImage($colorMatrix);
|
||||
|
||||
$background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);
|
||||
|
||||
$bytes = $background->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
colorMatrixImage($colorMatrix) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,46 @@
|
||||
--TEST--
|
||||
Test Imagick, compositeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function compositeImage() {
|
||||
|
||||
$img1 = new \Imagick();
|
||||
$img1->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$img2 = new \Imagick();
|
||||
$img2->newPseudoImage(640, 480, "magick:logo");
|
||||
$img2->negateImage(false);
|
||||
$img2->blurimage(10, 5);
|
||||
|
||||
|
||||
$img1->resizeimage(
|
||||
$img2->getImageWidth(),
|
||||
$img2->getImageHeight(),
|
||||
\Imagick::FILTER_LANCZOS,
|
||||
1
|
||||
);
|
||||
|
||||
$opacity = new \Imagick();
|
||||
$opacity->newPseudoImage(
|
||||
$img1->getImageHeight(),
|
||||
$img1->getImageWidth(),
|
||||
"gradient:gray(10%)-gray(90%)"
|
||||
);
|
||||
$opacity->rotateimage('black', 90);
|
||||
|
||||
$img2->compositeImage($opacity, \Imagick::COMPOSITE_COPYOPACITY, 0, 0);
|
||||
$img1->compositeImage($img2, \Imagick::COMPOSITE_ATOP, 0, 0);
|
||||
|
||||
$bytes = $img1->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
compositeImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, contrastImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$contrastType = 1;
|
||||
|
||||
function contrastImage($contrastType) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
if ($contrastType != 2) {
|
||||
$imagick->contrastImage($contrastType);
|
||||
}
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
contrastImage($contrastType) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,37 @@
|
||||
--TEST--
|
||||
Test Imagick, convolveImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$bias = 0.5;
|
||||
$kernelMatrix = array (
|
||||
0 => -1,
|
||||
1 => -1,
|
||||
2 => -1,
|
||||
3 => -1,
|
||||
4 => 8,
|
||||
5 => -1,
|
||||
6 => -1,
|
||||
7 => -1,
|
||||
8 => -1,
|
||||
);
|
||||
|
||||
function convolveImage($bias, $kernelMatrix) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
//$edgeFindingKernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1,];
|
||||
|
||||
$imagick->setImageBias($bias * \Imagick::getQuantum());
|
||||
$imagick->convolveImage($kernelMatrix);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
convolveImage($bias, $kernelMatrix) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, cropImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$startX = 50;
|
||||
$startY = 50;
|
||||
$width = 50;
|
||||
$height = 50;
|
||||
|
||||
function cropImage($startX, $startY, $width, $height) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->cropImage($width, $height, $startX, $startY);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
cropImage($startX, $startY, $width, $height) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
Test Imagick, deskewImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$threshold = 0.5;
|
||||
|
||||
function deskewImage($threshold) {
|
||||
$imagick = $imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$deskewImagick = clone $imagick;
|
||||
|
||||
//This is the only thing required for deskewing.
|
||||
$deskewImagick->deskewImage($threshold);
|
||||
|
||||
//The rest of this example is to make the result obvious - because
|
||||
//otherwise the result is not obvious.
|
||||
$trim = 9;
|
||||
|
||||
$deskewImagick->cropImage($deskewImagick->getImageWidth() - $trim, $deskewImagick->getImageHeight(), $trim, 0);
|
||||
$imagick->cropImage($imagick->getImageWidth() - $trim, $imagick->getImageHeight(), $trim, 0);
|
||||
$deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2, $deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
|
||||
$imagick->resizeimage($imagick->getImageWidth() / 2, $imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
|
||||
$newCanvas = new \Imagick();
|
||||
$newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20, $imagick->getImageHeight(), 'red', 'jpg');
|
||||
$newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY, 5, 0);
|
||||
$newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY, $imagick->getImageWidth() + 10, 0);
|
||||
|
||||
$bytes = $newCanvas->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
deskewImage($threshold) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
0, 0,
|
||||
25, 25,
|
||||
100, 0,
|
||||
100, 50
|
||||
);
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND );
|
||||
$imagick->distortImage( \Imagick::DISTORTION_AFFINE, $points, TRUE );
|
||||
header( "Content-Type: image/jpeg" );
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
0.9,0.3,
|
||||
-0.2,0.7,
|
||||
20,15
|
||||
);
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND );
|
||||
$imagick->distortImage( \Imagick::DISTORTION_AFFINEPROJECTION, $points, TRUE );
|
||||
header( "Content-Type: image/jpeg" );
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
//Make some text arc around the center of it's image
|
||||
// convert logo: -resize x150 -gravity NorthEast -crop 100x100+10+0! \
|
||||
// \( -background none label:'IM Examples' \
|
||||
// -virtual-pixel Background +distort Arc '270 50 20' \
|
||||
// -repage +75+21\! \) -flatten arc_overlay.jpg
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$degrees = array( 180 );
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND );
|
||||
$imagick->distortImage( \Imagick::DISTORTION_ARC, $degrees, TRUE );
|
||||
header( "Content-Type: image/jpeg" );
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$degrees = array( 180, 45, 100, 20 );
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND );
|
||||
$imagick->distortImage( \Imagick::DISTORTION_ARC, $degrees, TRUE );
|
||||
header( "Content-Type: image/jpeg" );
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
0,0, 25,25, # top left
|
||||
176,0, 126,0, # top right
|
||||
0,135, 0,105, # bottom right
|
||||
176,135, 176,135 # bottum left
|
||||
);
|
||||
$imagick->setImageBackgroundColor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND );
|
||||
$imagick->distortImage( \Imagick::DISTORTION_BILINEAR, $points, TRUE );
|
||||
header( "Content-Type: image/jpeg" );
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
1.5, # scale 150%
|
||||
150 # rotate
|
||||
);
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND );
|
||||
$imagick->distortImage( \Imagick::DISTORTION_SCALEROTATETRANSLATE, $points, TRUE );
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,46 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
//$imagick = new \Imagick(realpath($this->rsiControl->getImagePath()));
|
||||
$imagick = new \Imagick();
|
||||
|
||||
/* Create new checkerboard pattern */
|
||||
$imagick->newPseudoImage(100, 100, "pattern:checkerboard");
|
||||
|
||||
/* Set the image format to png */
|
||||
$imagick->setImageFormat('png');
|
||||
|
||||
/* Fill new visible areas with transparent */
|
||||
$imagick->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
|
||||
|
||||
/* Activate matte */
|
||||
$imagick->setImageMatte(true);
|
||||
|
||||
/* Control points for the distortion */
|
||||
$controlPoints = array( 10, 10,
|
||||
10, 5,
|
||||
|
||||
10, $imagick->getImageHeight() - 20,
|
||||
10, $imagick->getImageHeight() - 5,
|
||||
|
||||
$imagick->getImageWidth() - 10, 10,
|
||||
$imagick->getImageWidth() - 10, 20,
|
||||
|
||||
$imagick->getImageWidth() - 10, $imagick->getImageHeight() - 10,
|
||||
$imagick->getImageWidth() - 10, $imagick->getImageHeight() - 30);
|
||||
|
||||
/* Perform the distortion */
|
||||
$imagick->distortImage(\Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
//X-of-destination = (sx*xs + ry+ys +tx) / (px*xs + py*ys +1)
|
||||
//Y-of-destination = (rx*xs + sy+ys +ty) / (px*xs + py*ys +1)
|
||||
|
||||
// sx ry tx
|
||||
// rx sy ty
|
||||
// px py
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
1.945622, 0.071451,
|
||||
-12.187838, 0.799032,
|
||||
1.276214, -24.470275, 0.006258, 0.000715
|
||||
);
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_PERSPECTIVEPROJECTION, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,37 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
|
||||
// Order X1,Y1 I1,J1 X2,Y2 I2,J2 X3,Y3 I3,J3 X4,Y4 I4,J4 . . . .
|
||||
// The 'Order' argument is usually an integer from '1' onward, though a special value
|
||||
// of '1.5' can also be used. This defines the 'order' or complexity of the 2-dimensional
|
||||
// mathematical equation (using both 'x' and 'y') , that will be applied.
|
||||
// For example an order '1' polynomial will fit a equation of the form...
|
||||
// Xd = C2x*Xs + C1x*Ys + C0x , Yd = C2y*Xs + C1y*Ys + C0y
|
||||
// See also http://www.imagemagick.org/Usage/distorts/#polynomial
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
1.5, //Order 1.5 = special
|
||||
0, 0, 26, 0,
|
||||
128,0, 114,23,
|
||||
128,128, 128,100,
|
||||
0,128, 0,123
|
||||
);
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_POLYNOMIAL, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
//v6.4.2-6
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
0
|
||||
);
|
||||
|
||||
//Only do partial arc
|
||||
// $points = array(
|
||||
// 60,20, 0,0, -60,60
|
||||
// );
|
||||
|
||||
// HorizontalTile
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_POLAR, $points, TRUE);
|
||||
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,26 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
//v6.4.2-6
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$points = array(
|
||||
0
|
||||
);
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_BACKGROUND);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_DEPOLAR, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,37 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
|
||||
// The arguments needed for the 'Barrel' distort method. Generally you supply
|
||||
// 3 or 4 values only...
|
||||
// A B C [ D [ X , Y ] ]
|
||||
// The optional X,Y arguments provide an optional 'center' for the radial distortion,
|
||||
// otherwise it defaults to the exact center of the image given (regardless of its virtual offset).
|
||||
// The coefficients are designed so that if all four A to D values, add up to '1.0', the minimal
|
||||
// width/height of the image will not change. For this reason if D (which controls the overall
|
||||
// scaling of the image) is not supplied it will be set so all four values do add up to '1.0'.
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$points = array(
|
||||
//0.2, 0.0, 0.0, 1.0
|
||||
0.4, 0.6, 0.0, 1.0
|
||||
);
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_EDGE);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_BARREL, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
// Rsrc = r / ( A*r3 + B*r2 + C*r + D )
|
||||
// This equation does NOT produce the 'reverse' the 'Barrel' distortion.
|
||||
// You can NOT use it to 'undo' the previous distortion.
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$points = array(
|
||||
//0.2, 0.0, 0.0, 1.0
|
||||
0.2, 0.1, 0.0, 1.0
|
||||
);
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_EDGE);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_BARRELINVERSE, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,46 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
//The control points move points in the image in a taffy like motion
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$points = array(
|
||||
|
||||
//Setup some control points that don't move
|
||||
5 * $imagick->getImageWidth() / 100, 5 * $imagick->getImageHeight() / 100,
|
||||
5 * $imagick->getImageWidth() / 100, 5 * $imagick->getImageHeight() / 100,
|
||||
|
||||
5 * $imagick->getImageWidth() / 100, 95 * $imagick->getImageHeight() / 100,
|
||||
5 * $imagick->getImageWidth() / 100, 95 * $imagick->getImageHeight() / 100,
|
||||
|
||||
95 * $imagick->getImageWidth() / 100, 95 * $imagick->getImageHeight() / 100,
|
||||
95 * $imagick->getImageWidth() / 100, 95 * $imagick->getImageHeight() / 100,
|
||||
|
||||
5 * $imagick->getImageWidth() / 100, 5 * $imagick->getImageHeight() / 100,
|
||||
95 * $imagick->getImageWidth() / 100, 95 * $imagick->getImageHeight() / 100,
|
||||
// //Move the centre of the image down and to the right
|
||||
// 50 * $imagick->getImageWidth() / 100, 50 * $imagick->getImageHeight() / 100,
|
||||
// 60 * $imagick->getImageWidth() / 100, 60 * $imagick->getImageHeight() / 100,
|
||||
//
|
||||
// //Move a point near the top-right of the image down and to the left and down
|
||||
// 90 * $imagick->getImageWidth(), 10 * $imagick->getImageHeight(),
|
||||
// 80 * $imagick->getImageWidth(), 15 * $imagick->getImageHeight(),
|
||||
);
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_EDGE);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_SHEPARDS, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,8 @@
|
||||
001+ unknown method given: No such file or directory
|
||||
001- Ok
|
||||
002+
|
||||
003+ Fatal error: Uncaught exception 'ImagickException' with message 'memory allocation failed GenerateCoefficients @ error/distort.c/GenerateCoefficients/497' in /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php:19
|
||||
004+ Stack trace:
|
||||
005+ #0 /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php(19): Imagick->distortimage(18, Array, true)
|
||||
006+ #1 {main}
|
||||
007+ thrown in /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php on line 19
|
||||
@@ -0,0 +1 @@
|
||||
Ok
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
---- EXPECTED OUTPUT
|
||||
Ok
|
||||
---- ACTUAL OUTPUT
|
||||
unknown method given: No such file or directory
|
||||
|
||||
Fatal error: Uncaught exception 'ImagickException' with message 'memory allocation failed GenerateCoefficients @ error/distort.c/GenerateCoefficients/497' in /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php:19
|
||||
Stack trace:
|
||||
#0 /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php(19): Imagick->distortimage(18, Array, true)
|
||||
#1 {main}
|
||||
thrown in /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php on line 19
|
||||
---- FAILED
|
||||
@@ -0,0 +1,7 @@
|
||||
unknown method given: No such file or directory
|
||||
|
||||
Fatal error: Uncaught exception 'ImagickException' with message 'memory allocation failed GenerateCoefficients @ error/distort.c/GenerateCoefficients/497' in /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php:19
|
||||
Stack trace:
|
||||
#0 /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php(19): Imagick->distortimage(18, Array, true)
|
||||
#1 {main}
|
||||
thrown in /home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php on line 19
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
// Rsrc = r / ( A*r3 + B*r2 + C*r + D )
|
||||
// This equation does NOT produce the 'reverse' the 'Barrel' distortion.
|
||||
// You can NOT use it to 'undo' the previous distortion.
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$points = array(
|
||||
//0.2, 0.0, 0.0, 1.0
|
||||
0.2, 0.1, 0.0, 1.0
|
||||
);
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_EDGE);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_SENTINEL, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Test Imagick, distortImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$distortion = 1;
|
||||
|
||||
// Rsrc = r / ( A*r3 + B*r2 + C*r + D )
|
||||
// This equation does NOT produce the 'reverse' the 'Barrel' distortion.
|
||||
// You can NOT use it to 'undo' the previous distortion.
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$points = array(
|
||||
//0.2, 0.0, 0.0, 1.0
|
||||
0.2, 0.1, 0.0, 1.0
|
||||
);
|
||||
|
||||
$imagick->setimagebackgroundcolor("#fad888");
|
||||
$imagick->setImageVirtualPixelMethod( \Imagick::VIRTUALPIXELMETHOD_EDGE);
|
||||
$imagick->distortImage(\Imagick::DISTORTION_SENTINEL, $points, TRUE);
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
/usr/bin/php -n -c '/home/github/mkoppanen-imagick/tmp-php.ini' -d "output_handler=" -d "open_basedir=" -d "safe_mode=0" -d "disable_functions=" -d "output_buffering=Off" -d "error_reporting=32767" -d "display_errors=1" -d "display_startup_errors=1" -d "log_errors=0" -d "html_errors=0" -d "track_errors=1" -d "report_memleaks=1" -d "report_zend_debug=0" -d "docref_root=" -d "docref_ext=.html" -d "error_prepend_string=" -d "error_append_string=" -d "auto_prepend_file=" -d "auto_append_file=" -d "ignore_repeated_errors=0" -d "precision=14" -d "memory_limit=128M" -d "log_errors_max_len=0" -d "opcache.fast_shutdown=0" -d "opcache.file_update_protection=0" -d "extension_dir=/home/github/mkoppanen-imagick/modules/" -d "extension=imagick.so" -d "session.auto_start=0" -d "zlib.output_compression=Off" -d "mbstring.func_overload=0" -f "/home/github/mkoppanen-imagick/tests/064_Imagick_distortImage_Sentinel.php" 2>&1
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, despeckleImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function despeckleImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->despeckleImage();
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
despeckleImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, embossImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
$sigma = 1;
|
||||
|
||||
function embossImage($radius, $sigma) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->embossImage($radius, $sigma);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
embossImage($radius, $sigma) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, edgeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
|
||||
function edgeImage($radius) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->edgeImage($radius);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
edgeImage($radius) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, enhanceImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function enhanceImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->enhanceImage();
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
enhanceImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, equalizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function equalizeImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->equalizeImage();
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
equalizeImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Test Imagick, equalizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
//This appears to corrupt the image colors?
|
||||
function extentImage($startX, $startY, $width, $height) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->equalizeImage();
|
||||
$imagick->extentImage(
|
||||
$startX, $startY, $width, $height
|
||||
);
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
$startX = 50;
|
||||
$startY = 50;
|
||||
$width = 150;
|
||||
$height = 150;
|
||||
|
||||
extentImage($startX, $startY, $width, $height) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, flipImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function flipImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->flipImage();
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
flipImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,107 @@
|
||||
--TEST--
|
||||
Test Imagick, evaluateImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$evaluateType = 1;
|
||||
$firstTerm = 0.5;
|
||||
$gradientStartColor = 'black';
|
||||
$gradientEndColor = 'white';
|
||||
|
||||
$evaluateTypes = [
|
||||
\Imagick::EVALUATE_ADD,
|
||||
\Imagick::EVALUATE_AND,
|
||||
\Imagick::EVALUATE_MAX,
|
||||
\Imagick::EVALUATE_MIN,
|
||||
\Imagick::EVALUATE_OR,
|
||||
\Imagick::EVALUATE_SET,
|
||||
\Imagick::EVALUATE_SUBTRACT,
|
||||
\Imagick::EVALUATE_XOR,
|
||||
\Imagick::EVALUATE_THRESHOLD,
|
||||
\Imagick::EVALUATE_THRESHOLDBLACK,
|
||||
\Imagick::EVALUATE_THRESHOLDWHITE,
|
||||
\Imagick::EVALUATE_ADDMODULUS,
|
||||
|
||||
\Imagick::EVALUATE_DIVIDE,
|
||||
\Imagick::EVALUATE_MULTIPLY,
|
||||
\Imagick::EVALUATE_RIGHTSHIFT,
|
||||
\Imagick::EVALUATE_LEFTSHIFT,
|
||||
\Imagick::EVALUATE_POW,
|
||||
\Imagick::EVALUATE_LOG,
|
||||
\Imagick::EVALUATE_GAUSSIANNOISE,
|
||||
\Imagick::EVALUATE_IMPULSENOISE,
|
||||
\Imagick::EVALUATE_LAPLACIANNOISE,
|
||||
\Imagick::EVALUATE_MULTIPLICATIVENOISE,
|
||||
\Imagick::EVALUATE_POISSONNOISE,
|
||||
\Imagick::EVALUATE_UNIFORMNOISE,
|
||||
\Imagick::EVALUATE_COSINE,
|
||||
\Imagick::EVALUATE_SINE,
|
||||
];
|
||||
|
||||
|
||||
|
||||
function evaluateImage($evaluateType, $firstTerm, $gradientStartColor, $gradientEndColor) {
|
||||
$imagick = new \Imagick();
|
||||
$size = 400;
|
||||
$imagick->newPseudoImage(
|
||||
$size,
|
||||
$size,
|
||||
"gradient:$gradientStartColor-$gradientEndColor"
|
||||
);
|
||||
|
||||
$quantumScaledTypes = [
|
||||
\Imagick::EVALUATE_ADD,
|
||||
\Imagick::EVALUATE_AND,
|
||||
\Imagick::EVALUATE_MAX,
|
||||
\Imagick::EVALUATE_MIN,
|
||||
\Imagick::EVALUATE_OR,
|
||||
\Imagick::EVALUATE_SET,
|
||||
\Imagick::EVALUATE_SUBTRACT,
|
||||
\Imagick::EVALUATE_XOR,
|
||||
\Imagick::EVALUATE_THRESHOLD,
|
||||
\Imagick::EVALUATE_THRESHOLDBLACK,
|
||||
\Imagick::EVALUATE_THRESHOLDWHITE,
|
||||
\Imagick::EVALUATE_ADDMODULUS,
|
||||
];
|
||||
|
||||
$unscaledTypes = [
|
||||
\Imagick::EVALUATE_DIVIDE,
|
||||
\Imagick::EVALUATE_MULTIPLY,
|
||||
\Imagick::EVALUATE_RIGHTSHIFT,
|
||||
\Imagick::EVALUATE_LEFTSHIFT,
|
||||
\Imagick::EVALUATE_POW,
|
||||
\Imagick::EVALUATE_LOG,
|
||||
\Imagick::EVALUATE_GAUSSIANNOISE,
|
||||
\Imagick::EVALUATE_IMPULSENOISE,
|
||||
\Imagick::EVALUATE_LAPLACIANNOISE,
|
||||
\Imagick::EVALUATE_MULTIPLICATIVENOISE,
|
||||
\Imagick::EVALUATE_POISSONNOISE,
|
||||
\Imagick::EVALUATE_UNIFORMNOISE,
|
||||
\Imagick::EVALUATE_COSINE,
|
||||
\Imagick::EVALUATE_SINE,
|
||||
];
|
||||
|
||||
if (in_array($evaluateType, $unscaledTypes)) {
|
||||
$imagick->evaluateimage($evaluateType, $firstTerm);
|
||||
}
|
||||
else if (in_array($evaluateType, $quantumScaledTypes)) {
|
||||
$imagick->evaluateimage($evaluateType, $firstTerm * \Imagick::getQuantum());
|
||||
}
|
||||
else {
|
||||
throw new \Exception("Evaluation type $evaluateType is not listed as either scaled or unscaled");
|
||||
}
|
||||
|
||||
$imagick->setimageformat('png');
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
foreach ($evaluateTypes as $evaluateType) {
|
||||
evaluateImage($evaluateType, $firstTerm, $gradientStartColor, $gradientEndColor) ;
|
||||
}
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,67 @@
|
||||
--TEST--
|
||||
Test Imagick, forwardFourierTransformImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
//Utility function for forwardTransformImage
|
||||
function createMask() {
|
||||
$draw = new \ImagickDraw();
|
||||
|
||||
$draw->setStrokeOpacity(0);
|
||||
$draw->setStrokeColor('rgb(255, 255, 255)');
|
||||
$draw->setFillColor('rgb(255, 255, 255)');
|
||||
|
||||
//Draw a circle on the y-axis, with it's centre
|
||||
//at x, y that touches the origin
|
||||
$draw->circle(250, 250, 220, 250);
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newImage(512, 512, "black");
|
||||
$imagick->drawImage($draw);
|
||||
$imagick->gaussianBlurImage(20, 20);
|
||||
$imagick->autoLevelImage();
|
||||
|
||||
return $imagick;
|
||||
}
|
||||
|
||||
|
||||
function forwardFourierTransformImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);
|
||||
|
||||
$mask = createMask();
|
||||
$imagick->forwardFourierTransformImage(true);
|
||||
|
||||
@$imagick->setimageindex(0);
|
||||
$magnitude = $imagick->getimage();
|
||||
|
||||
@$imagick->setimageindex(1);
|
||||
$imagickPhase = $imagick->getimage();
|
||||
|
||||
if (true) {
|
||||
$imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
|
||||
}
|
||||
|
||||
if (false) {
|
||||
$output = clone $imagickPhase;
|
||||
$output->setimageformat('png');
|
||||
$bytes = $output->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
$magnitude->inverseFourierTransformImage($imagickPhase, true);
|
||||
|
||||
$magnitude->setimageformat('png');
|
||||
$bytes = $magnitude->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
forwardFourierTransformImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, flopImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function flopImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->flopImage();
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
flopImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Test Imagick, floodFillPaintImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$fillColor = 'rgb(0, 0, 0)';
|
||||
$fuzz = 0.2;
|
||||
$targetColor = 'rgb(245, 124, 24)';
|
||||
$x = 260;
|
||||
$y = 150;
|
||||
$inverse = 0;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function floodFillPaintImage($fillColor, $fuzz, $targetColor, $x, $y, $inverse, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$imagick->floodFillPaintImage(
|
||||
$fillColor,
|
||||
$fuzz * \Imagick::getQuantum(),
|
||||
$targetColor,
|
||||
$x, $y,
|
||||
$inverse,
|
||||
$channel
|
||||
);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
floodFillPaintImage($fillColor, $fuzz, $targetColor, $x, $y, $inverse, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, fxImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function fxImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(200, 200, "xc:white");
|
||||
|
||||
$fx = 'xx=i-w/2; yy=j-h/2; rr=hypot(xx,yy); (.5-rr/140)*1.2+.5';
|
||||
$fxImage = $imagick->fxImage($fx);
|
||||
|
||||
$fxImage->setimageformat('png');
|
||||
$bytes = $fxImage->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
fxImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Test Imagick, frameImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$color = 'rgb(127, 127, 127)';
|
||||
$width = 5;
|
||||
$height = 5;
|
||||
$innerBevel = 3;
|
||||
$outerBevel = 3;
|
||||
|
||||
function frameImage($color, $width, $height, $innerBevel, $outerBevel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$width = $width + $innerBevel + $outerBevel;
|
||||
$height = $height + $innerBevel + $outerBevel;
|
||||
|
||||
$imagick->frameimage(
|
||||
$color,
|
||||
$width,
|
||||
$height,
|
||||
$innerBevel,
|
||||
$outerBevel
|
||||
);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
frameImage($color, $width, $height, $innerBevel, $outerBevel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, gammaImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$gamma = 2.2;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function gammaImage($gamma, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->gammaImage($gamma, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
gammaImage($gamma, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,20 @@
|
||||
--TEST--
|
||||
Test Imagick, getImageGeometry
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function getImageGeometry() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
getImageGeometry() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, gaussianBlurImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
$sigma = 1;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function gaussianBlurImage($radius, $sigma, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->gaussianBlurImage($radius, $sigma, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
gaussianBlurImage($radius, $sigma, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,100 @@
|
||||
--TEST--
|
||||
Test Imagick, getImageHistogram
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function getColorStatistics($histogramElements, $colorChannel) {
|
||||
$colorStatistics = [];
|
||||
|
||||
foreach ($histogramElements as $histogramElement) {
|
||||
//So broken. Wow. Much surprise. Sad. Bad. Sad, bad, sad.
|
||||
//$color = $histogramElement->getColorValueQuantum($colorChannel);
|
||||
$color = $histogramElement->getColorValue($colorChannel);
|
||||
$color = intval($color * 255);
|
||||
$count = $histogramElement->getColorCount();
|
||||
|
||||
if (array_key_exists($color, $colorStatistics)) {
|
||||
$colorStatistics[$color] += $count;
|
||||
}
|
||||
else {
|
||||
$colorStatistics[$color] = $count;
|
||||
}
|
||||
}
|
||||
|
||||
ksort($colorStatistics);
|
||||
|
||||
return $colorStatistics;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getImageHistogram() {
|
||||
|
||||
$backgroundColor = 'black';
|
||||
|
||||
$draw = new \ImagickDraw();
|
||||
$draw->setStrokeWidth(0); //Lines have a wi
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newImage(500, 500, $backgroundColor);
|
||||
$imagick->setImageFormat("png");
|
||||
$imagick->drawImage($draw);
|
||||
|
||||
$histogramWidth = 256;
|
||||
$histogramHeight = 100; // the height for each RGB segment
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
//Resize the image to be small, otherwise PHP tends to run out of memory
|
||||
//This might lead to bad results for images that are pathologically 'pixelly'
|
||||
$imagick->adaptiveResizeImage(200, 200, true);
|
||||
$histogramElements = $imagick->getImageHistogram();
|
||||
|
||||
$histogram = new \Imagick();
|
||||
$histogram->newpseudoimage($histogramWidth, $histogramHeight * 3, 'xc:black');
|
||||
$histogram->setImageFormat('png');
|
||||
|
||||
$getMax = function ($carry, $item) {
|
||||
if ($item > $carry) {
|
||||
return $item;
|
||||
}
|
||||
return $carry;
|
||||
};
|
||||
|
||||
$colorValues = [
|
||||
'red' => getColorStatistics($histogramElements, \Imagick::COLOR_RED),
|
||||
'lime' => getColorStatistics($histogramElements, \Imagick::COLOR_GREEN),
|
||||
'blue' => getColorStatistics($histogramElements, \Imagick::COLOR_BLUE),
|
||||
];
|
||||
|
||||
$max = array_reduce($colorValues['red'] , $getMax, 0);
|
||||
$max = array_reduce($colorValues['lime'] , $getMax, $max);
|
||||
$max = array_reduce($colorValues['blue'] , $getMax, $max);
|
||||
|
||||
$scale = $histogramHeight / $max;
|
||||
|
||||
$count = 0;
|
||||
foreach ($colorValues as $color => $values) {
|
||||
$draw->setstrokecolor($color);
|
||||
|
||||
$offset = ($count + 1) * $histogramHeight;
|
||||
|
||||
foreach ($values as $index => $value) {
|
||||
$draw->line($index, $offset, $index, $offset - ($value * $scale));
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
|
||||
$histogram->drawImage($draw);
|
||||
$bytes = $histogram->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
getImageHistogram();
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
/usr/bin/php -n -c '/home/github/mkoppanen-imagick/tmp-php.ini' -d "output_handler=" -d "open_basedir=" -d "safe_mode=0" -d "disable_functions=" -d "output_buffering=Off" -d "error_reporting=32767" -d "display_errors=1" -d "display_startup_errors=1" -d "log_errors=0" -d "html_errors=0" -d "track_errors=1" -d "report_memleaks=1" -d "report_zend_debug=0" -d "docref_root=" -d "docref_ext=.html" -d "error_prepend_string=" -d "error_append_string=" -d "auto_prepend_file=" -d "auto_append_file=" -d "ignore_repeated_errors=0" -d "precision=14" -d "memory_limit=128M" -d "log_errors_max_len=0" -d "opcache.fast_shutdown=0" -d "opcache.file_update_protection=0" -d "extension_dir=/home/github/mkoppanen-imagick/modules/" -d "extension=imagick.so" -d "session.auto_start=0" -d "zlib.output_compression=Off" -d "mbstring.func_overload=0" -f "/home/github/mkoppanen-imagick/tests/082_Imagick_getImageHistogram_basic.php" 2>&1
|
||||
@@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
Test Imagick, getPixelIterator
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function getPixelIterator() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imageIterator = $imagick->getPixelIterator();
|
||||
|
||||
/** @noinspection PhpUnusedLocalVariableInspection */
|
||||
foreach ($imageIterator as $row => $pixels) { /* Loop trough pixel rows */
|
||||
foreach ($pixels as $column => $pixel) { /* Loop through the pixels in the row (columns) */
|
||||
/** @var $pixel \ImagickPixel */
|
||||
if ($column % 2) {
|
||||
$pixel->setColor("rgba(0, 0, 0, 0)"); /* Paint every second pixel black*/
|
||||
}
|
||||
}
|
||||
$imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
|
||||
}
|
||||
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
getPixelIterator() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
Test Imagick, getPixelRegionIterator
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function getPixelRegionIterator() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imageIterator = $imagick->getPixelRegionIterator(100, 100, 200, 200);
|
||||
|
||||
/** @noinspection PhpUnusedLocalVariableInspection */
|
||||
foreach ($imageIterator as $row => $pixels) { /* Loop trough pixel rows */
|
||||
foreach ($pixels as $column => $pixel) { /* Loop through the pixels in the row (columns) */
|
||||
/** @var $pixel \ImagickPixel */
|
||||
if ($column % 2) {
|
||||
$pixel->setColor("rgba(0, 0, 0, 0)"); /* Paint every second pixel black*/
|
||||
}
|
||||
}
|
||||
$imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
|
||||
}
|
||||
|
||||
$bytes = $imagick;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
getPixelRegionIterator() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, haldClutImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function haldClutImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagickPalette = new \Imagick();
|
||||
$imagickPalette->newPseudoImage(640, 480, "magick:NETSCAPE");
|
||||
|
||||
$imagickPalette->sepiatoneImage(55);
|
||||
$imagick->haldClutImage($imagickPalette);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
haldClutImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,67 @@
|
||||
--TEST--
|
||||
Test Imagick, forwardFourierTransformImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
//Utility function for forwardTransformImage
|
||||
function createMask() {
|
||||
$draw = new \ImagickDraw();
|
||||
|
||||
$draw->setStrokeOpacity(0);
|
||||
$draw->setStrokeColor('rgb(255, 255, 255)');
|
||||
$draw->setFillColor('rgb(255, 255, 255)');
|
||||
|
||||
//Draw a circle on the y-axis, with it's centre
|
||||
//at x, y that touches the origin
|
||||
$draw->circle(250, 250, 220, 250);
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newImage(512, 512, "black");
|
||||
$imagick->drawImage($draw);
|
||||
$imagick->gaussianBlurImage(20, 20);
|
||||
$imagick->autoLevelImage();
|
||||
|
||||
return $imagick;
|
||||
}
|
||||
|
||||
|
||||
function forwardFourierTransformImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);
|
||||
|
||||
$mask = createMask();
|
||||
$imagick->forwardFourierTransformImage(true);
|
||||
|
||||
@$imagick->setimageindex(0);
|
||||
$magnitude = $imagick->getimage();
|
||||
|
||||
@$imagick->setimageindex(1);
|
||||
$imagickPhase = $imagick->getimage();
|
||||
|
||||
if (true) {
|
||||
$imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
|
||||
}
|
||||
|
||||
if (false) {
|
||||
$output = clone $imagickPhase;
|
||||
$output->setimageformat('png');
|
||||
$bytes = $output->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
$magnitude->inverseFourierTransformImage($imagickPhase, true);
|
||||
|
||||
$magnitude->setimageformat('png');
|
||||
$bytes = $magnitude->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
forwardFourierTransformImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Test Imagick, levelImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$blackPoint = 50;
|
||||
$whitePoint = 100;
|
||||
$gamma = 2.2;
|
||||
|
||||
function levelImage($blackPoint, $gamma, $whitePoint) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoimage(500, 500, 'gradient:black-white');
|
||||
|
||||
$imagick->setFormat('png');
|
||||
$quantum = $imagick->getQuantum();
|
||||
$imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
levelImage($blackPoint, $gamma, $whitePoint) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, implodeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function implodeImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->implodeImage(0.0001);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
|
||||
}
|
||||
|
||||
implodeImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, medianFilterImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
|
||||
function medianFilterImage($radius) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
@$imagick->medianFilterImage($radius);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
medianFilterImage($radius) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, magnifyImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function magnifyImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->magnifyImage();
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
magnifyImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, linearStretchImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$blackThreshold = 0.2;
|
||||
$whiteThreshold = 0.2;
|
||||
|
||||
function linearStretchImage($blackThreshold, $whiteThreshold) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$pixels = $imagick->getImageWidth() * $imagick->getImageHeight();
|
||||
$imagick->linearStretchImage($blackThreshold * $pixels, $whiteThreshold * $pixels);
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
linearStretchImage($blackThreshold, $whiteThreshold) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
Test Imagick, mergeImageLayers
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$layerMethodType = 13;
|
||||
|
||||
function mergeImageLayers($layerMethodType) {
|
||||
|
||||
$imagick = new \Imagick();
|
||||
$nextImage = null;
|
||||
$imageNames = [
|
||||
"magick:NETSCAPE",
|
||||
"magick:logo",
|
||||
"magick:GRANITE",
|
||||
];
|
||||
|
||||
foreach ($imageNames as $imageName) {
|
||||
$nextImage = new \Imagick();
|
||||
$nextImage->newPseudoImage(640, 480, $imageName);
|
||||
$imagick->addImage($nextImage);
|
||||
}
|
||||
|
||||
$imagick->resetIterator();
|
||||
|
||||
$imagick->setImageFormat('png');
|
||||
|
||||
$result = $imagick->mergeImageLayers($layerMethodType);
|
||||
$bytes = $result->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
mergeImageLayers($layerMethodType);
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, modulateImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$hue = 150;
|
||||
$saturation = 100;
|
||||
$brightness = 100;
|
||||
|
||||
function modulateImage($hue, $brightness, $saturation) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->modulateImage($brightness, $saturation, $hue);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
modulateImage($hue, $brightness, $saturation) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, motionBlurImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 20;
|
||||
$sigma = 20;
|
||||
$angle = 45;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function motionBlurImage($radius, $sigma, $angle, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->motionBlurImage($radius, $sigma, $angle, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
motionBlurImage($radius, $sigma, $angle, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, normalizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function normalizeImage($channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$original = clone $imagick;
|
||||
$original->cropimage($original->getImageWidth() / 2, $original->getImageHeight(), 0, 0);
|
||||
$imagick->normalizeImage($channel);
|
||||
$imagick->compositeimage($original, \Imagick::COMPOSITE_ATOP, 0, 0);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
normalizeImage($channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, negateImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$grayOnly = 0;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function negateImage($grayOnly, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->negateImage($grayOnly, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
negateImage($grayOnly, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, newPseudoImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$canvasType = 'gradient:';
|
||||
|
||||
function newPseudoImage($canvasType) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(300, 300, $canvasType);
|
||||
$imagick->setImageFormat("png");
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
newPseudoImage($canvasType) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,26 @@
|
||||
--TEST--
|
||||
Test Imagick, orderedPosterizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$orderedPosterizeType = "o8x8";
|
||||
|
||||
function orderedPosterizeImage($orderedPosterizeType) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
|
||||
$imagick->orderedPosterizeImage($orderedPosterizeType);
|
||||
$imagick->setImageFormat('png');
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
orderedPosterizeImage($orderedPosterizeType) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, oilPaintImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
|
||||
function oilPaintImage($radius) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->oilPaintImage($radius);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
oilPaintImage($radius) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, posterizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$posterizeType = 2;
|
||||
$numberLevels = 8;
|
||||
|
||||
function posterizeImage($posterizeType, $numberLevels) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->posterizeImage($numberLevels, $posterizeType);
|
||||
$imagick->setImageFormat('png');
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
posterizeImage($posterizeType, $numberLevels) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,26 @@
|
||||
--TEST--
|
||||
Test Imagick, quantizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$numberColors = 64;
|
||||
$colorSpace = 1;
|
||||
$treeDepth = 0;
|
||||
$dither = 1;
|
||||
|
||||
function quantizeImage($numberColors, $colorSpace, $treeDepth, $dither) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->quantizeImage($numberColors, $colorSpace, $treeDepth, $dither, false);
|
||||
$imagick->setImageFormat('png');
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
quantizeImage($numberColors, $colorSpace, $treeDepth, $dither) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, radialBlurImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function radialBlurImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->radialBlurImage(3);
|
||||
$imagick->radialBlurImage(5);
|
||||
$imagick->radialBlurImage(7);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
radialBlurImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,37 @@
|
||||
--TEST--
|
||||
Test Imagick, readImageBlob
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function readImageBlob() {
|
||||
|
||||
// Image blob borrowed from:
|
||||
// http://www.techerator.com/2011/12/how-to-embed-images-directly-into-your-html/
|
||||
$base64 = "iVBORw0KGgoAAAANSUhEUgAAAM0AAAD
|
||||
NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c
|
||||
cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK
|
||||
gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ
|
||||
0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho
|
||||
aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x
|
||||
v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0
|
||||
NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD
|
||||
Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ
|
||||
AAAAAElFTkSuQmCC";
|
||||
|
||||
$imageBlob = base64_decode($base64);
|
||||
|
||||
$imagick = new Imagick();
|
||||
$imagick->readImageBlob($imageBlob);
|
||||
|
||||
$bytes = $imageBlob;
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
readImageBlob() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Test Imagick, randomThresholdImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$lowThreshold = 0.1;
|
||||
$highThreshold = 0.9;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function randomThresholdimage($lowThreshold, $highThreshold, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$imagick->randomThresholdimage(
|
||||
$lowThreshold * \Imagick::getQuantum(),
|
||||
$highThreshold * \Imagick::getQuantum(),
|
||||
$channel
|
||||
);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
randomThresholdimage($lowThreshold, $highThreshold, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Test Imagick, raiseImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$width = 15;
|
||||
$height = 15;
|
||||
$x = 10;
|
||||
$y = 10;
|
||||
$raise = 1;
|
||||
|
||||
function raiseImage($width, $height, $x, $y, $raise) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
//x and y do nothing?
|
||||
$imagick->raiseImage($width, $height, $x, $y, $raise);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
raiseImage($width, $height, $x, $y, $raise) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, reduceNoiseImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$reduceNoise = 5;
|
||||
|
||||
function reduceNoiseImage($reduceNoise) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
@$imagick->reduceNoiseImage($reduceNoise);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
reduceNoiseImage($reduceNoise) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,32 @@
|
||||
--TEST--
|
||||
Test Imagick, recolorImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function recolorImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$remapColor = [ 1, 0, 0,
|
||||
0, 0, 1,
|
||||
0, 1, 0,];
|
||||
|
||||
//$remapColor = [
|
||||
// 1.438, -0.122, -0.016, 0, 0, -0.03,
|
||||
// -0.062, 1.378, -0.016, 0, 0, 0.05,
|
||||
// -0.062, -0.122, 1.483, 0, 0, -0.02,
|
||||
//];
|
||||
|
||||
@$imagick->recolorImage($remapColor);
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
recolorImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, resampleImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function resampleImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
resampleImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, rollImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$rollX = 100;
|
||||
$rollY = 100;
|
||||
|
||||
function rollImage($rollX, $rollY) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->rollimage($rollX, $rollY);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
rollImage($rollX, $rollY) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,51 @@
|
||||
--TEST--
|
||||
Test Imagick, resizeImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$filterType = 22;
|
||||
$width = 200;
|
||||
$height = 200;
|
||||
$blur = 1;
|
||||
$bestFit = 1;
|
||||
$cropZoom = 1;
|
||||
|
||||
function resizeImage($width, $height, $filterType, $blur, $bestFit, $cropZoom) {
|
||||
//The blur factor where > 1 is blurry, < 1 is sharp.
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);
|
||||
|
||||
$cropWidth = $imagick->getImageWidth();
|
||||
$cropHeight = $imagick->getImageHeight();
|
||||
|
||||
if ($cropZoom) {
|
||||
$newWidth = $cropWidth / 2;
|
||||
$newHeight = $cropHeight / 2;
|
||||
|
||||
$imagick->cropimage(
|
||||
$newWidth,
|
||||
$newHeight,
|
||||
($cropWidth - $newWidth) / 2,
|
||||
($cropHeight - $newHeight) / 2
|
||||
);
|
||||
|
||||
$imagick->scaleimage(
|
||||
$imagick->getImageWidth() * 4,
|
||||
$imagick->getImageHeight() * 4
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
resizeImage($width, $height, $filterType, $blur, $bestFit, $cropZoom) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, rotateImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$angle = 45;
|
||||
$color = 'rgb(127, 127, 127)';
|
||||
|
||||
function rotateImage($angle, $color) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->rotateimage($color, $angle);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
rotateImage($angle, $color) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
Test Imagick, roundCorners
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function roundCorners() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->setBackgroundColor('red');
|
||||
|
||||
$imagick->setbackgroundcolor('pink');
|
||||
|
||||
$x_rounding = 40;
|
||||
$y_rounding = 40;
|
||||
$stroke_width = 5;
|
||||
$displace = 0;
|
||||
$size_correction = 0;
|
||||
|
||||
$imagick->roundCornersImage(
|
||||
$x_rounding,
|
||||
$y_rounding,
|
||||
$stroke_width,
|
||||
$displace,
|
||||
$size_correction
|
||||
);
|
||||
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
roundCorners() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Test Imagick, rotationalBlurImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function rotationalBlurImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->rotationalBlurImage(3);
|
||||
$imagick->rotationalBlurImage(5);
|
||||
$imagick->rotationalBlurImage(7);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
rotationalBlurImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Test Imagick, scaleImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function scaleImage() {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->scaleImage(150, 150, true);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
scaleImage() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Test Imagick, selectiveBlurImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$radius = 5;
|
||||
$sigma = 1;
|
||||
$threshold = 0.5;
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function selectiveBlurImage($radius, $sigma, $threshold, $channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->selectiveBlurImage($radius, $sigma, $threshold, $channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
selectiveBlurImage($radius, $sigma, $threshold, $channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, separateImageChannel
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$channel = Imagick::CHANNEL_DEFAULT;
|
||||
|
||||
function separateImageChannel($channel) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->separateimagechannel($channel);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
separateImageChannel($channel) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Test Imagick, segmentImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$clusterThreshold = 5;
|
||||
$smoothThreshold = 5;
|
||||
$colorSpace = 1;
|
||||
|
||||
function segmentImage($colorSpace, $clusterThreshold, $smoothThreshold) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->segmentImage($colorSpace, $clusterThreshold, $smoothThreshold);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
segmentImage($colorSpace, $clusterThreshold, $smoothThreshold) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Test Imagick, setImageArtifact
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
|
||||
function setImageArtifact() {
|
||||
$src1 = new \Imagick();
|
||||
$src1->newPseudoImage(640, 480, "magick:logo");
|
||||
|
||||
$src2 = new \Imagick();
|
||||
$src2->newPseudoImage(480, 640, "magick:WIZARD");
|
||||
|
||||
$src2->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
|
||||
$src2->setImageArtifact('compose:args', "1,0,-0.5,0.5");
|
||||
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
|
||||
|
||||
$src1->setImageFormat('png');
|
||||
$bytes = $src1->getImagesBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
setImageArtifact() ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Test Imagick, sepiaToneImage
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$sepia = 55;
|
||||
|
||||
function sepiaToneImage($sepia) {
|
||||
$imagick = new \Imagick();
|
||||
$imagick->newPseudoImage(640, 480, "magick:logo");
|
||||
$imagick->sepiaToneImage($sepia);
|
||||
$bytes = $imagick->getImageBlob();
|
||||
if (strlen($bytes) <= 0) { echo "Failed to generate image.";}
|
||||
}
|
||||
|
||||
sepiaToneImage($sepia) ;
|
||||
echo "Ok";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Ok
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user