Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ использованиС

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Imagick Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ изобраТСниями Π² PHP Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ интСрфСйс. Π’ΠΎΡ‚ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Ρƒ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Imagick

<?php

header
('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// Если Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ высоты ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ 0,
// ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон сохраняСтся
$image->thumbnailImage(100, 0);

echo
$image;

?>

Π‘ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ SPL ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ функциями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Imagick, Π±Π΅Π· усилий ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для просмотра Π½Π° Π²Π΅Π±-страницах). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ измСняСт Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€ для всСх JPG-Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

<?php

$images
= new Imagick(glob('images/*.JPG'));

foreach(
$images as $image) {
// ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ thumbnailImage Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон
$image->thumbnailImage(1024,0);
}

$images->writeImages();

?>

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создаёт ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ изобраТСния. ΠžΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ создаётся Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Π½Π° Π½Ρ‘ΠΌ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° холст.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #3 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ отраТСния

<?php

/* Π§Ρ‚Π΅Π½ΠΈΠ΅ изобраТСния */
$im = new Imagick("test.png");

/* ΠœΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π° изобраТСния */
$im->thumbnailImage(200, null);

/* Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π°ΠΌΠΊΠΈ для изобраТСния */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ */
$reflection = $im->clone();
$reflection->flipImage();

/* Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ для отраТСния */
$gradient = new Imagick();

/* Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно большой для изобраТСния ΠΈ Π΅Π³ΠΎ Ρ€Π°ΠΌΠΊΠΈ */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* НалоТСниС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Π½Π° ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* ДобавляСм ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ. ВрСбуСтся ImageMagick 6.2.9 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ */
$reflection->setImageOpacity( 0.3 );

/* Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ пустой холст */
$canvas = new Imagick();

/* Π₯олст Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно большой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Π° изобраТСния */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* НалоТСниС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния ΠΈ отраТСния Π½Π° холст */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Π’Ρ‹Π²ΠΎΠ΄ изобраТСния */
header("Content-Type: image/png");
echo
$canvas;

?>

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π°:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ отраТСния изобраТСния

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π»ΠΈΠ²ΠΊΡƒ Π²ΠΎ врСмя рисования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #4 Π—Π°Π»ΠΈΠ²ΠΊΠ° тСкста Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠΌ

<?php

/* Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° imagick */
$im = new Imagick();

/* Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ изобраТСния. Π‘ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ шаблона Π·Π°Π»ΠΈΠ²ΠΊΠΈ */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ imagickdraw */
$draw = new ImagickDraw();

/* ЗапускаСм Π½ΠΎΠ²Ρ‹ΠΉ шаблон с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* БмСшиваСм Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ с шаблоном */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ шаблон */
$draw->popPattern();

/* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ шаблон с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«gradientΒ» для Π·Π°Π»ΠΈΠ²ΠΊΠΈ */
$draw->setFillPatternURL('#gradient');

/* УстанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π° Π² 52 */
$draw->setFontSize(52);

/* ДобавляСм свой тСкст */
$draw->annotation(20, 50, "Hello World!");

/* Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ холста ΠΈ Π±Π΅Π»ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* РисуСм ImagickDraw Π½Π° холстС */
$canvas->drawImage($draw);

/* устанавливаСм Ρ‡Ρ‘Ρ€Π½ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 1px Π²ΠΎΠΊΡ€ΡƒΠ³ изобраТСния */
$canvas->borderImage('black', 1, 1);

/* УстанавливаСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG */
$canvas->setImageFormat('png');

/* Π’Ρ‹Π²ΠΎΠ΄ изобраТСния */
header("Content-Type: image/png");
echo
$canvas;
?>

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π°:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°: Π—Π°Π»ΠΈΠ²ΠΊΠ° тСкста Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠΌ

Π Π°Π±ΠΎΡ‚Π° с Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ GIF-изобраТСниями

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #5 Π§Ρ‚Π΅Π½ΠΈΠ΅ GIF-изобраТСния ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ°

<?php

/* Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° imagick ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π² GIF */
$im = new Imagick("example.gif");

/* ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° всСх Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ² */
foreach ($im as $frame) {
/* Ρ„Ρ€Π΅ΠΉΠΌΡ‹ 50x50 */
$frame->thumbnailImage(50, 50);

/* УстанавливаСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ холст для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° */
$frame->setImagePage(50, 50, 0, 0);
}

/* ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ writeImages, Π° Π½Π΅ writeImage */
$im->writeImages("example_small.gif", true);

?>

Π Π°Π±ΠΎΡ‚Π° с ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠΌ «эллипс» ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #6 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ PHP-Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ°

<?php

/* Установка ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты Π² ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΈ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ° PHP */
$width = 400;
$height = 210;

/* Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Imagick с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ прозрачности */
$img = new Imagick();
$img->newImage($width, $height, new ImagickPixel('transparent'));

/* Новый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ImagickDraw для отрисовки эллипса */
$draw = new ImagickDraw();

/* Установка ΠΏΡƒΡ€ΠΏΡƒΡ€Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π·Π°Π»ΠΈΠ²ΠΊΠΈ для эллипса */
$draw->setFillColor('#777bb4');

/* Π—Π°Π΄Π°Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² эллипса */
$draw->ellipse($width / 2, $height / 2, $width / 2, $height / 2, 0, 360);

/* ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° эллипса */
$img->drawImage($draw);

/* Бброс Ρ†Π²Π΅Ρ‚Π° Π·Π°Π»ΠΈΠ²ΠΊΠΈ с ΠΏΡƒΡ€ΠΏΡƒΡ€Π½ΠΎΠ³ΠΎ Π½Π° Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ для тСкста (Π·Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ImagickDraw ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ) */
$draw->setFillColor('black');

/* Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π±Π΅Π»Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ */
$draw->setStrokeColor('white');

/* Π—Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρ‹ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠΈ */
$draw->setStrokeWidth(2);

/* Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΡ‘Ρ€Π½ΠΈΠ½Π³Π° (ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π±ΡƒΠΊΠ²Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π±Π»ΠΈΠΆΠ΅ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ) */
$draw->setTextKerning(-8);

/* Π—Π°Π΄Π°Π½ΠΈΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ΅ PHP */
$draw->setFont('Handel Gothic.ttf');
$draw->setFontSize(150);

/* Π¦Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ */
$draw->setGravity(Imagick::GRAVITY_CENTER);

/* Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста Β«phpΒ» со смСщСниСм ΠΏΠΎ Y Π½Π° -10 Π½Π° холст (Π²Π½ΡƒΡ‚Ρ€ΠΈ эллипса) */
$img->annotateImage($draw, 0, -10, 0, 'php');
$img->setImageFormat('png');

/* Установка Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° для PNG-Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ изобраТСния */
header('Content-Type: image/png');
echo
$img;

?>

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π°:

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π°:
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 2 notes

up
36
vokseli ΒΆ
11 years ago
Be careful when loading multiple images by passing an array to a new Imagick object. This is from Example #2:

<?php

$images = new Imagick(glob('images/*.JPG'));

?>

If you have lots of images inside the images folder, PHP will consume a lot of memory, ergo it is not recommended. I personally think it's a better idea to loop each image separately:

<?php

$image_files = glob('images/*.JPG');

foreach ($image_files as $image_file) {
    $image = new Imagick($image_file);
    // Do something for the image and so on...
}

?>

This way only a single image is fitted into the memory at a time.
up
18
inoshadi at gmail dot com ΒΆ
12 years ago
on Example #3 Creating a reflection of an image
----------------------------------------------------
/* Clone the image and flip it */
$reflection = $im->clone();
$reflection->flipImage();
----------------------------------------------------
it was using the Imagick::clone function

This function has been DEPRECATED as of imagick 3.1.0 in favour of using the clone keyword.

use below code instead:
----------------------------------------------------
/* Clone the image and flip it */
$reflection = clone $im;
$reflection->flipImage();
----------------------------------------------------

http://php.net/manual/en/imagick.clone.php