GD библиотеката ни предоставя прексрасната възможност да рисуваме, оцветявайки пикселче по пикселче и ето какво сътворих по въпросните два ефекта:
Демо:
http://84.242.156.50/122/1.php?id=1
http://84.242.156.50/122/1.php?id=2
Ето и резултатите:
точки:
чертички ("монитор"):
Във втория вариант често служи за фон на текст. Използва се нерядко по менюта на уеб сайтове. Ето кодче, което само трябва да се добави към предното:
Ето и резултат:
За втория вариант трябва да зададем колко искаме да ни е висок "цокълът", образуван от ефекта.
Давайте идеи за други и накрая може, и цял редактор да си сглобим
P.S. $pattern_color2 е дефиниран като бяло без алфа канал.
10х SOMNIVM
Демо:
http://84.242.156.50/122/1.php?id=1
http://84.242.156.50/122/1.php?id=2
Код:
<?PHP
//взимаме изображението, което искаме да манипулираме
$im = imagecreatefromjpeg('temple.jpg');
//взимаме размерите му
$imwidth = imagesx($im);
$imheight = imagesy($im);
//дефинираме черен цвят за пикселите,които ще нарисуваме и полу-прозрачното бяло на слоя, който ще е над изображението
$pattern_color = imagecolorallocate ($im, 0, 0, 0);
$overlay_color = imagecolorallocatealpha ($im, 255, 255, 255, 75);
//рисуваме един правоъгълник с размера на изображението, който се явява като полу прозрачен бял слой над изображението
imagefilledrectangle ($im, 0, 0, $imwidth, $imheight, $overlay_color);
//избираме си един от двата ефекта. ако нямаме валиден избор връщаме картинката недокосната
switch($_GET['id']) {
//точките на разстояние 5 пиксела оедна от друга по хоризонтала и вертикала
case 1:
for($i=2;$i<=$imheight;$i+=5) {
for($z=2;$z<=$imwidth;$z+=5) {
imagesetpixel ($im, $z, $i, $pattern_color);
}
}
break;
//чертите: всяка линия е на разстояние 2 пиксела под предната.Това може да се направи и с imageline, но ми се струва, че е все едно от гледна точка на изчисленията, защото ако не се лъжа imageline използва imagesetpixel, за да рисува линиите.
case 2:
for($i=0;$i<=$imheight;$i+=2) {
for($z=0;$z<=$imwidth;$z++) {
imagesetpixel ($im, $z, $i, $pattern_color);
}
}
break;
}
//пращаме картинката към браузъра
header("Content-type: image/jpeg");
imagejpeg($im);
imagedestroy($im);
exit;
?>
Ето и резултатите:
точки:

чертички ("монитор"):

Във втория вариант често служи за фон на текст. Използва се нерядко по менюта на уеб сайтове. Ето кодче, което само трябва да се добави към предното:
Код:
<?PHP
case 3:
$k = 2;
for($i=0;$i<$imheight;$i++) {
for($z=$k;$z<=$imwidth;$z+=5) {
imagesetpixel ($im, $z, $i, $pattern_color2);
}
$k--;
}
break;
case 4:
$k = 2;
for($i=$imheight;$i>$imheight-$_GET['cokyl'];$i--) {
for($z=$k;$z<=$imwidth;$z+=5) {
imagesetpixel ($im, $z, $i, $pattern_color2);
}
$k--;
}
break;
?>
Ето и резултат:


За втория вариант трябва да зададем колко искаме да ни е висок "цокълът", образуван от ефекта.
Давайте идеи за други и накрая може, и цял редактор да си сглобим
P.S. $pattern_color2 е дефиниран като бяло без алфа канал.
10х SOMNIVM