"We are back" « oc.at

Php - Gd

XeroXs 04.08.2002 - 21:00 1326 11
Posts

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10344
checkt die wer da?

brauch da a paar denkanstöße..

basics sind klar.. header definiern, bild erstellen mit imagecreate, dann des ganze zeug wo das bild gezeichnet wird und dann noch anzeigen lassen und nachher destroyen damits ned im speicher hängen bleibt..

soweit so gut..

i hab da jetzt 2 probleme die i afoch ned hinbekomm....

1.) Ellipsen zeichnen.. ImageEllipse geht auf keinem server deni zur verfügung hab... weil da nirgends GD 2.0.2 installed is... da muss es doch an vorgänger zu dem befehl geben ?! (der zumindest etwas ähnliches macht)

2.) würd gern zuerst an geschlossenen rahmen zeichnen aus linien... in einer beliebigen form... und dann die form in einer farbe füllen... is des möglich? wie?

thx :D

MrDarK

Bloody Newbie
Registered: Jun 2002
Location: Stmk/Jdbg
Posts: 7
hilft dir das weiter
Zitat
<?php



//Header("Content-type: image/png");


function drawlines($x,$y,$breite,$hoehe,$steps,$richtung)
{

global $image;


$weiss=imagecolorallocate($image,0,0,0);
$schwarz=imagecolorallocate($image,0,0,0);
$andere=imagecolorallocate($image,255,0,255);
$andere2=imagecolorallocate($image,255,110,255);




srand ((double) microtime() * 1000000);
$randval = rand();

$sin1=rand(0,360);
$sin2=rand(0,360);
$sin3=rand(0,360);
$sin4=rand(0,360);
$add1=rand(1,12);
$add2=rand(1,12);
$add3=rand(1,12);
$add4=rand(1,12);


$col1_r['start']=rand(0,55);
$col1_r['end']=rand(0,255);
$col1_g['start']=rand(0,55);
$col1_g['end']=rand(0,255);
$col1_b['start']=rand(0,55);
$col1_b['end']=rand(0,200);



$myPi=3.14159265358979323846;



//$steps=115;
$speed=1;


//$x=rand(0,$breite);
//$y=rand(0,$hoehe);
//$richtung=rand(0,360);

for($i=0;$i<$steps;$i++){

$richtung+=rand(0,40)-20;

$r1=(($col1_r['end']-$col1_r['start'])/$steps)*$i+$col1_r['start'];
$g1=(($col1_g['end']-$col1_g['start'])/$steps)*$i+$col1_g['start'];
$b1=(($col1_b['end']-$col1_b['start'])/$steps)*$i+$col1_b['start'];
$andere=imagecolorallocate($image,$r1,$g1,$b1);

$newx=$x+(sin(deg2rad($richtung))-cos(deg2rad($richtung)))*$speed;
$newy=$y+(cos(deg2rad($richtung))+sin(deg2rad($richtung)))*$speed;



if ($newx<0){
$newx=$newx+$breite;
$x=$newx;
}elseif($newx>$breite){
$newx=$newx-$breite;$x=$newx;}

if ($newy<0){
$newy=$newy+$hoehe;
$y=$newy;
}elseif($newy>$hoehe){

$newy=$newy-$hoehe;
$y=$newy;
}

if(rand(0,70)==5){
drawlines($newx,$newy,$breite,$hoehe,$steps/2,$richtung);

}


imageline($image,$x,$y,$newx,$newy,$andere);
// imagesetpixel($image,$newx,$newy,$andere);

$x=$newx;
$y=$newy;
}

//imagerectangle($image,0,0,$breite,$hoehe,$andere);

}

$breite=100;
$hoehe=100;
$image=imagecreate($breite,$hoehe);


ImageInterlace($image,1);

imagecolorset($image,1,0,0,0);
drawlines(rand(0,$breite),rand(0,$hoehe),$breite,$hoehe,100,rand(0,360)) ;
drawlines(rand(0,$breite),rand(0,$hoehe),$breite,$hoehe,30,rand(0,360)) ;




imagepng($image);
imagedestroy($bild);

?>

ist nicht von mir

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10344
mal anguggen... :D

äh.. damit wird weder meine erste noch meine zweite frage beantwortet :confused:
Bearbeitet von XeroXs am 04.08.2002, 21:48

MrDarK

Bloody Newbie
Registered: Jun 2002
Location: Stmk/Jdbg
Posts: 7
aso
wast eh i kenn mi do null aus

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
es wäre schön, wenn manche leute auch mal in dokumentationen schaun, ich hab jetzt auch nix andres gemacht...:

1. http://www.php.net/manual/en/function.imagearc.php davon brauchst nur zwei (gespiegelte) machen -> fertig (wobei die links am ende zu beachten sind...)
2. http://www.php.net/manual/en/functi...edrectangle.php

übersicht über alle image-geschichten:http://www.php.net/manual/en/ref.image.php

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10344
1.) hab ich in der doku gschaut.. des arc habi allerdings übersehen, thx

2.) filledrectangle kenn ich eh.. is aba nur für rechtecke.. sowas habi ned gmeint... sondern afoch zerst mit linien eine beliebige form zeichnen und diese dann füllen....

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
hey, sei doch ETWAS einfallsreich..., ich hab' dir ja sogar den link zur funktionsübersicht gegeben...
http://www.php.net/manual/en/functi...lledpolygon.php

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10344
ahja, thx

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10344
hm.... kann man da irgendwie anti aliasing aufdrehen ?

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
hmm, weiis nix davon.. kannst aber aa selber machen, zb mit grau zweite linie daneben machen...

bernhard

Little Overclocker
Registered: Feb 2001
Location: NÖ
Posts: 51
JpGraph besitzt Routinen, die einen midpoint Algorithmus verwenden:
<http://www.aditus.nu/jpgraph/jpg_antialias.php>

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
watchout, dein Vorschlag ist ja wohl sehr witzlos. Du solltest dir mal anschauen, wie eine Anti-Aliasing wirklich aussieht bzw. funktioniert.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz