Autor | Zpráva | ||
---|---|---|---|
timbulko Profil |
#1 · Zasláno: 17. 6. 2007, 18:42:16
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 |
#2 · Zasláno: 17. 6. 2007, 19:21:23
jee ;-) uz som na to dosiel... sorry za zbytocnu temu...
|
||
centi Profil |
#3 · Zasláno: 17. 6. 2007, 19:24:48
timbulko
Skús sem teda popísať tvoje riešenie, možno sa bude niekomu hodiť. |
||
timbulko Profil |
#4 · Zasláno: 17. 6. 2007, 19:35:08
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 |
#5 · Zasláno: 17. 6. 2007, 19:36:51
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 |
#6 · Zasláno: 18. 6. 2007, 19:55:57
Nikoho nenapada ziadny sposob?
|
||
Časová prodleva: 17 let
|
0