Exemplo n.º 1
0
<?php

$im = imageCreateTrueColor(150, 50);
$color = imageColorAllocate($im, 128, 128, 128);
imageFill($im, 10, 10, $color);
$color = imageColorAllocate($im, 255, 255, 255);
for ($i = 0; $i < 800; $i++) {
    $randW = mt_rand(0, imageSX($im));
    $randH = mt_rand(0, imageSY($im));
    imageSetPixel($im, $randW, $randH, $color);
}
imageSetThickness($im, 2);
$color = imageColorAllocate($im, 100, 100, 100);
imageLine($im, 10, 30, 130, 20, $color);
$color = imageColorAllocate($im, 70, 70, 70);
$n1 = mt_rand(0, 9);
imageTtfText($im, 25, 10, mt_rand(2, 10), mt_rand(25, 45), $color, "times.ttf", $n1);
$color = imageColorAllocate($im, 255, 0, 50);
$str = "ABCDIFGHIJKLMNOPKASTUVWXYZ";
$nw = mt_rand(0, 15);
$n2 = $str[$nw];
imageTtftext($im, 22, -10, mt_rand(25, 35), mt_rand(25, 45), $color, "times.ttf", $n2);
$color = imageColorAllocate($im, 50, 50, 50);
$n3 = mt_rand(0, 9);
imageTtfText($im, 25, 15, mt_rand(60, 70), mt_rand(25, 45), $color, "times.ttf", $n3);
$color = imageColorAllocate($im, 250, 250, 250);
$nw2 = mt_rand(15, 25);
$n4 = $str[$nw2];
imageTtfText($im, 22, 30, mt_rand(90, 100), mt_rand(25, 45), $color, "times.ttf", $n4);
$color = imageColorAllocate($im, 255, 220, 70);
$n5 = mt_rand(0, 9);
Exemplo n.º 2
0
    $lines[$l]["y1"] = mt_rand(0, imageSY($image));
    $lines[$l]["x2"] = mt_rand(0, imageSX($image));
    $lines[$l]["y2"] = mt_rand(0, imageSY($image));
    $lines[$l]["color"] = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    imageSetThickness($image, mt_rand(1, 3));
    imageLine($image, $lines[$l]["x1"], $lines[$l]["y1"], $lines[$l]["x2"], $lines[$l]["y2"], $lines[$l]["color"]);
}
for ($a = 0; $a < 7; $a++) {
    $arcs[$a]["x"] = mt_rand(0, imageSX($image));
    $arcs[$a]["y"] = mt_rand(0, imageSY($image));
    $arcs[$a]["width"] = mt_rand(0, imageSX($image));
    $arcs[$a]["height"] = mt_rand(0, imageSY($image));
    $arcs[$a]["u1"] = mt_rand(0, 360);
    $arcs[$a]["u2"] = mt_rand(0, 360);
    $arcs[$a]["color"] = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    imageSetThickness($image, mt_rand(1, 3));
    imageArc($image, $arcs[$a]["x"], $arcs[$a]["y"], $arcs[$a]["width"], $arcs[$a]["height"], $arcs[$a]["u1"], $arcs[$a]["u2"], $arcs[$a]["color"]);
}
for ($p = 0; $p < 999; $p++) {
    $x = mt_rand(0, imageSX($image));
    $y = mt_rand(0, imageSY($image));
    $color = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    imageSetPixel($image, $x, $y, $color);
}
for ($s = 0; $s < 5; $s++) {
    $letters[$s]["size"] = mt_rand(25, 35);
    $letters[$s]["corner"] = mt_rand(-20, 20);
    if ($s === 0) {
        $letters[$s]["x"] = 10;
    } else {
        $letters[$s]["x"] = $s * 35;
Exemplo n.º 3
0
<?php

require_once "unicode.php";
$i = imageCreate(400, 400);
//Функция imageCreate() - создает новое палитровое изображение  возвращает идентификатор изображения(1-ширина изо, 2- высота изо)
$color = imageColorAllocate($i, 0, 255, 0);
imageFilledRectangle($i, 0, 0, imageSX($i), imageSY($i), $color);
//Функция imageFilledRectangle() - рисование закрашенного прямоугольника (1-ресурс изображения, 2 - х-координата точки 1, 3 - у-координата точки 1, 4 - х-координата точки 2, 5 - у-координата точки 2, 6 - цвет заливки)
$color = imageColorAllocate($i, 255, 0, 0);
imageRectangle($i, 100, 100, 200, 200, $color);
//Функция imageRectangle() - рисование прямоугольника (1-ресурс изображения, 2 - х-координата точки 1, 3 - у-координата точки 1, 4 - х-координата точки 2, 5 - у-координата точки 2, 6 - цвет бордера)
imageSetThickness($i, 10);
//Функция imageSetThickness() - задает толщину линии(1-ресурс изображения, 2-толщина линии)
$color = imageColorAllocate($i, 0, 0, 255);
imageRectangle($i, 50, 80, 150, 150, $color);
imageSetThickness($i, 3);
$color = imageColorAllocate($i, 255, 255, 0);
imageLine($i, 10, 10, 350, 250, $color);
//Функция imageLine() - рисует линию по двум точкам (1-ресурс изображения, 2 - х-координата точки 1, 3 - у-координата точки 1, 4 - х-координата точки 2, 5 - у-координата точки 2, 6 - цвет бордера)
$color = imageColorAllocate($i, 255, 255, 255);
imageArc($i, 300, 100, 150, 150, 0, 0, $color);
//Функция imagearc() - рисует окружность дуги с заданными координатами центра, дуга рисуется по часовой стрелке (1-ресурс изображения, 2 - х-координата центра, 3 - у-координата центра, 4 - ширина дуги, 5 - высота дуги, 6 - угол начала дуги в градусах, 7 - угол окончания дуги в градусах, 8 - цвет дуги )
//Функция imagefilledarc() - рисует и заливает окружность дуги с заданными координатами центра, дуга рисуется по часовой стрелке (1-ресурс изображения, 2 - х-координата центра, 3 - у-координата центра, 4 - ширина дуги, 5 - высота дуги, 6 - угол начала дуги в градусах, 7 - угол окончания дуги в градусах, 8 - цвет дуги )
$color = imageColorAllocate($i, 0, 255, 255);
imagefill($i, 130, 130, $color);
//Функция imagefill() - производит заливку, начиная с заданных координат точки (1-ресурс изображения, 2 - х-координата точки, 3 - у-координата точки, 4 - цвет заливки, либо можно указать константу заливки IMG_COLOR_TILED)
$im = imagecreatefromgif("images/image.gif");
imagesettile($i, $im);
//Функция imagesettile() - задает изображение, которое будет использовано в качестве элемента мозаичной заливки (1-ресурс изображения который будут заливать, 2- ресурс изображения для использования мозайчной заливки)
imagefill($i, 250, 50, IMG_COLOR_TILED);
$color = imagecolorallocate($i, 0, 0, 0);
<?php

/*Работа с изображениями.Часть 2 урок 2-12
 ***Функция imageCopyResized() - копирование и изменение размера части изображения(1-куда копируем ресурс изо создаваемое, 2-откуда копируем ресурс изо исходное, 3 - х-координата создаваемого изо, 4 - у-координата создаваемого изо, 5 - х-координата исходного изо, 6 - у-координата исходного изо, 7- ширина создаваемого изо, 8 - высота создаваемого изо, 9 - ширина исходного изо, 10 - высота исходного изо)
 */
$im = imageCreateTrueColor(400, 500);
$color = imageColorAllocate($im, 34, 34, 34);
imageFill($im, 100, 100, $color);
$color = imageColorAllocate($im, 100, 200, 3);
imageSetThickness($im, 5);
imageLine($im, 0, 0, imageSX($im), imageSY($im), $color);
$color = imageColorAllocate($im, 0, 40, 255);
imageFilledRectangle($im, 10, 10, 100, 100, $color);
$im2 = imageCreateTrueColor(100, 200);
imageCopyResized($im2, $im, 0, 0, 50, 50, imageSX($im2), imageSY($im2), 70, 70);
header("Content-type: image/png");
imagePng($im2);
imageDestroy($im);
imageDestroy($im2);
 /**
  * Creates and outputs the final image. 
  */
 protected function createImage()
 {
     // calculate image width
     foreach ($this->charWidth as $width) {
         $this->captchaWidth += $width;
     }
     if ($this->captchaWidth + strlen($this->codeWord) * 10 <= 300) {
         $this->captchaWidth = 300;
     }
     // create final image
     $captcha = imageCreate($this->captchaWidth + 40, $this->captchaHeight);
     $min = 0;
     // insert background
     if (CAPTCHA_RANDOM_BACKGROUND) {
         for ($y = 1; $y <= $this->elements; $y++) {
             $size = $elementsArr[$y]['size'] = mt_rand(150, 250);
             $elementsArr[$y]['pos'] = array(mt_rand($min, $min + $size), mt_rand(20, 80));
             $min = $min + $size + 50;
         }
         $tempRed = $this->color2['red'];
         $tempYellow = $this->color2['green'];
         $tempBlue = $this->color2['blue'];
         $counter = 0;
         for ($x = $this->gradientBorder; $x > 0; $x--) {
             if ($tempRed != $this->color1['red']) {
                 if ($this->gradient['red']['direction'] == 'up') {
                     $tempRed++;
                 } else {
                     $tempRed--;
                 }
             }
             if ($tempYellow != $this->color1['green']) {
                 if ($this->gradient['green']['direction'] == 'up') {
                     $tempYellow++;
                 } else {
                     $tempYellow--;
                 }
             }
             if ($tempBlue != $this->color1['blue']) {
                 if ($this->gradient['blue']['direction'] == 'up') {
                     $tempBlue++;
                 } else {
                     $tempBlue--;
                 }
             }
             $color = imageColorAllocate($captcha, $tempRed, $tempYellow, $tempBlue);
             foreach ($elementsArr as $element) {
                 imageFilledEllipse($captcha, $element['pos'][0], $element['pos'][1], $element['size'] - $counter, $element['size'] - $counter, $color);
             }
             $counter++;
         }
     } else {
         $tempColor = imageColorAllocate($captcha, 255, 255, 255);
     }
     // insert character images
     $counter = $y = 0;
     foreach ($this->chars as $char) {
         imageCopy($captcha, $char, $y, mt_rand(0, 30), 0, 0, $this->charWidth[$counter], $this->captchaHeight);
         imageDestroy($char);
         $y = $y + $this->charWidth[$counter] + mt_rand(0, 10);
         $counter++;
     }
     // insert random lines
     if (CAPTCHA_RANDOM_LINES) {
         for ($x = 1; $x <= $this->lines; $x++) {
             imageSetThickness($captcha, mt_rand(1, 3));
             $pos1 = array('x' => mt_rand(2, $this->captchaWidth - 2), 'y' => mt_rand(2, $this->captchaHeight - 2));
             $pos2 = array('x' => mt_rand(2, $this->captchaWidth - 2), 'y' => mt_rand(2, $this->captchaHeight - 2));
             $lineColor = imageColorAllocate($captcha, $this->fontColor['red'], $this->fontColor['green'], $this->fontColor['blue']);
             imageLine($captcha, $pos1['x'], $pos1['y'], $pos2['x'], $pos2['y'], $lineColor);
         }
     }
     // output image
     imagePng($captcha);
     // destroy image
     imageDestroy($captcha);
 }