Autor Zpráva
timbulko
Profil
Zdravím, ako by sa dal spraviť v PHP šikmý prechod z X:0 Y:0 do X:100 Y:100 ? Mám vytvorený script na vertikálny alebo horizontálny prechod, ale so šikmým prechodom si neviem poradiť :-/. Tu je ten script na vertikálny prechod:

<?
header("content-type: image/png");
$img = imagecreatetruecolor($_GET['x'], $_GET['y']);
$bg = imagecolorallocate ($img, 255, 255, 255);
$red1 = hexdec(substr($_GET['c1'], 0, 2));
$green1 = hexdec(substr($_GET['c1'], 2, 2));
$blue1 = hexdec(substr($_GET['c1'], 4, 2));
$red2 = hexdec(substr($_GET['c2'], 0, 2));
$green2 = hexdec(substr($_GET['c2'], 2, 2));
$blue2 = hexdec(substr($_GET['c2'], 4, 2));

for ($i=0;$i<$_GET['y'];$i++) {
$color = imagecolorallocate ($img, round($red1 - ($red1/$_GET['y'])*$i + ($red2/$_GET['y'])*$i), round($green1 - ($green1/$_GET['y'])*$i + ($green2/$_GET['y'])*$i), round($blue1 - ($blue1/$_GET['y'])*$i + ($blue2/$_GET['y'])*$i));
imageline($img, 0, $i, $_GET['x'], $i, $color);
}
?>

Vďaka
timbulko
Profil
jee ;-) uz som na to dosiel... sorry za zbytocnu temu...
centi
Profil
timbulko
Skús sem teda popísať tvoje riešenie, možno sa bude niekomu hodiť.
timbulko
Profil
no... je to trochu krkolomné riešenie... ide vlastne o to, že sa vytovorí šikmý prechod na presnom štvorci 50x50 px a ten sa potom zväčší/zmanší na požadovanú veľkosť.

<?
header("content-type: image/png");
$img = imagecreatetruecolor($_GET['x'], $_GET['y']);
$bg = imagecolorallocate ($img, 255, 255, 255);
$red1 = hexdec(substr($_GET['c1'], 0, 2));
$green1 = hexdec(substr($_GET['c1'], 2, 2));
$blue1 = hexdec(substr($_GET['c1'], 4, 2));
$red2 = hexdec(substr($_GET['c2'], 0, 2));
$green2 = hexdec(substr($_GET['c2'], 2, 2));
$blue2 = hexdec(substr($_GET['c2'], 4, 2));

$img = imagecreatetruecolor(50, 50);
for ($i=0;$i<=100;$i++) {
$color = imagecolorallocate ($img, round($red1 - ($red1/100)*$i + ($red2/100)*$i), round($green1 - ($green1/100)*$i + ($green2/100)*$i), round($blue1 - ($blue1/100)*$i + ($blue2/100)*$i));
imageline($img, $i, 0, 0, $i, $color);
}
$img_t = imagecreatetruecolor($_GET['x'], $_GET['y']);
imagecopyresampled($img_t, $img, 0, 0, 0, 0, $_GET['x'], $_GET['y'], 50, 50);
$img = $img_t;
?>
timbulko
Profil
Ale mám ešte jeden problém... Ten script čo som poslal funguje len na farebnom prechode. Ale ja ešte potrebujem spraviť striedanie farebných pásikov, každý o veľkosti napr. 5px... to ale týmto "zväčšovacím" scriptom spraviť určite spraviť nepôjde.

Vedel by niekto ako na to?


Díky ;-)
timbulko
Profil
Nikoho nenapada ziadny sposob?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: