PHP.mk документација

ImagickKernel::fromMatrix

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

imagickkernel.frommatrix.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека imagickkernel.frommatrix.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
ImagickKernel::fromMatrix

Референца за `imagickkernel.frommatrix.php` со подобрена типографија и навигација.

imagickkernel.frommatrix.php

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix(PECL imagick >= 3.3.0)

= NULL

public static function ImagickKernel::fromMatrix(array $matrix, array $origin = ?): ImagickKernel

Креирај јадро од 2Д матрица на вредности

Параметри

array

Креирај јадро од 2Д матрица на вредности. Секоја вредност треба да биде или float (ако елементот треба да се користи) или 'false' ако елементот треба да се прескокне. За матрици со непарни димензии во двете насоки, пикселот на потеклото ќе биде центарот на јадрото. За сите други големини на јадрото, мора да се специфицира пикселот на потеклото.

array

Матрица (т.е. 2Д низа) на вредности што го дефинираат јадрото. Секој елемент треба да биде или float вредност, или FALSE ако тој елемент не треба да се користи од јадрото.

Вратени вредности

Кој елемент од јадрото треба да се користи како пиксел на потеклото. на пр. За матрица 3x3, специфицирањето на потеклото како [2, 2] би специфицирало дека елементот во долниот десен агол треба да биде пикселот на потеклото.

Примери

Пример #1 Генерираното ImagickKernel.

<?php

function renderKernel(ImagickKernel $imagickKernel) {
$matrix = $imagickKernel->getMatrix();

$imageMargin = 20;

$tileSize = 20;
$tileSpace = 4;
$shadowSigma = 4;
$shadowDropX = 20;
$shadowDropY = 0;

$radius = ($tileSize / 2) * 0.9;

$rows = count($matrix);
$columns = count($matrix[0]);

$imagickDraw = new \ImagickDraw();

$imagickDraw->setFillColor('#afafaf');
$imagickDraw->setStrokeColor('none');

$imagickDraw->translate($imageMargin, $imageMargin);
$imagickDraw->push();

ksort($matrix);

foreach (
$matrix as $row) {
ksort($row);
$imagickDraw->push();
foreach (
$row as $cell) {
if (
$cell !== false) {
$color = intval(255 * $cell);
$colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
$imagickDraw->setFillColor($colorString);
$imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
}
$imagickDraw->translate(($tileSize + $tileSpace), 0);
}
$imagickDraw->pop();
$imagickDraw->translate(0, ($tileSize + $tileSpace));
}

$imagickDraw->pop();

$width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
$height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

$imagickDraw->push();
$imagickDraw->translate($width/2 , $height/2);
$imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
$imagickDraw->setStrokeColor('white');
$imagickDraw->circle(0, 0, $radius - 1, 0);
$imagickDraw->setStrokeColor('black');
$imagickDraw->circle(0, 0, $radius, 0);
$imagickDraw->pop();

$canvasWidth = $width + (2 * $imageMargin);
$canvasHeight = $height + (2 * $imageMargin);

$kernel = new \Imagick();
$kernel->newPseudoImage(
$canvasWidth,
$canvasHeight,
'canvas:none'
);

$kernel->setImageFormat('png');
$kernel->drawImage($imagickDraw);

/* create drop shadow on it's own layer */
$canvas = $kernel->clone();
$canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
$canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

$canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
$canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

/* composite original text_layer onto shadow_layer */
$canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
$canvas->setImageFormat('png');

return
$canvas;
}

function
createFromMatrix() {
$matrix = [
[
0.5, 0, 0.2],
[
0, 1, 0],
[
0.9, 0, false],
];

$kernel = \ImagickKernel::fromMatrix($matrix);

return
$kernel;
}

function
fromMatrix() {
$kernel = createFromMatrix();
$imagick = renderKernel($kernel);

header("Content-Type: image/png");
echo
$imagick->getImageBlob();
}

?>

Белешки од корисници

Нема белешки од корисници за оваа страница.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.