simenss Skrevet 23. september 2004 Del Skrevet 23. september 2004 Jeg vil gjerne at skriften i scriptet under skal midstilles og gjøres så liten at skriften ikke går ut av bildet. Hmm <?php // Headers header("Content-Type: image/jpeg"); // Instillinger $mappe = ""; // Mappen som bildene lagres i // Mottar variabler fra skjema $format = $_REQUEST['format']; $w = $_REQUEST['w']; $h = $_REQUEST['h']; $strekke = $_REQUEST['strekke']; $bilde = $_REQUEST['bilde']; $tekst = $_REQUEST['text']; $effekt = $_REQUEST['effekt']; // Genererer variabler $nytt_filnavn = rand(1000000, 9999999); list($width, $height, $bilde_type, $attr) = getimagesize($bilde); $attr = getimagesize($bilde); // Starter bildemanipulering if($bilde_type==1) { $bilde = imagecreatefromgif($bilde); // Lager bakgrunn } elseif($bilde_type==2) { $bilde = imagecreatefromjpeg($bilde); // Lager bakgrunn } elseif($bilde_type==3) { $bilde = imagecreatefrompng($bilde); // Lager bakgrunn } // Strekker bildet om ønsket if($strekke) { if($width<$height) { $w = $h * ($width/$height); } else { $h = $w / ($width/$height); } } if($text!=NULL) { $text = imagecreatetruecolor($width, $height); // Lager bildet som teksten skal plasseres på $hvit = imagecolorallocate($text, 255, 255, 255); // Lager hvitfarge til bakgrunn imagefill($text, 0, 0, $hvit); // Fyller bildet med hvit farge imagecolortransparent($text, $hvit); // Gjør hvitfargen om til gjennomsiktig farge $textcolor = imagecolorallocate($text, 0, 0, 0); // Lager tekstfarge imagettftext($text, 50, 0, 50, 100, $textcolor, "Arial.TTF", $tekst); // Legger til tekst imagefilter($text, IMG_FILTER_SMOOTH, 0); // Legger til effekt imagecopymerge($bilde, $text, 0, 0, 0, 0, $width, $height, 100); // Legger tekst over bakgrunn } $lagret_bilde = imagecreatetruecolor($w, $h); // Lager en hvit bakgrunn som alt skal legges på $hvit = imagecolorallocate($lagret_bilde, 255, 255, 255); // Lager hvitfarge til bakgrunn imagefill($lagret_bilde, 0, 0, $hvit); // Fyller bildet med hvit farge imagecopyresampled($lagret_bilde, $bilde, 0, 0, 0, 0, $w, $h, $width, $height); // Endrer størrelsen på bildet if($effekt!=NULL) { list($width, $height, $bilde_type, $attr) = getimagesize($effekt); // Henter info om effektbilde $effekt_bilde = imagecreatefrompng($effekt); // Opretter GD bilde av effektbilde imagecopyresampled($lagret_bilde, $effekt_bilde, 0, 0, 0, 0, $w, $h, $width, $height); // Endrer størrelsen på effektbildet og legger det til } // Lagrer bilde på server if($format=="jpeg") { imagejpeg($lagret_bilde, $mappe.$nytt_filnavn.".jpg", 100); } elseif($format=="gif") { imagegif($lagret_bilde, $mappe.$nytt_filnavn.".gif"); } elseif($format=="png") { imagepng($lagret_bilde, $mappe.$nytt_filnavn.".png"); } imagejpeg($lagret_bilde, NULL, 100); // Skriver ut bildet på skjermen // Sletter bilder imagedestroy($bilde); imagedestroy($text); imagedestroy($lagret_bilde); imagedestroy($effekt_bilde); ?> Lenke til kommentar
jrz Skrevet 25. september 2004 Del Skrevet 25. september 2004 ta width på bildet, og del på to, så plasserer du teksten der.. elns.. kan jo måle ca hvor lang tekst stringen er, og ta det med i beregningene til x plasseringen på bildet ? Lenke til kommentar
jorgis Skrevet 25. september 2004 Del Skrevet 25. september 2004 Husk at du bør bruke en monospace-font, siden de har like brede bokstaver, og du dermed kan regne på plasseringen. Lenke til kommentar
simenss Skrevet 30. september 2004 Forfatter Del Skrevet 30. september 2004 Husk at du bør bruke en monospace-font, siden de har like brede bokstaver, og du dermed kan regne på plasseringen. Hvordan vet jeg at en font er "monospaced"? Lenke til kommentar
jorgis Skrevet 30. september 2004 Del Skrevet 30. september 2004 Courier er en monospace font. Det er den typen fonter som er god å bruke til kodevisning. Lik bredde på alle bokstaver, ergo blir alle indents like. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå