Avatar billede Slettet bruger
20. april 2005 - 20:23 Der er 11 kommentarer og
1 løsning

Kant på billede i GDlib

Jeg har et billede, hvorpå jeg gerne vil lave en sort kant. Problemet er, at kanten aldrig bliver sort. Hele billedet bliver sort :o(

<?
// Set a maximum height and width
$width = 200;
$height = 70;

// Resample
$image_p = imagecreatetruecolor($width, $height);
//Definerer hvid
$hvid = imagecolorallocate($image_p, 255, 255, 255);
//Definerer sort
$sort = imagecolorallocate($image_p, 0, 0, 0);
//Definerer lysegrøn
$lys = imagecolorallocate($image_p, 204, 235, 162);
//Definerer mørkegrøn
$moerk = imagecolorallocate($image_p, 83, 111, 45);

//Fylder kant med sort
imagefill($image_p, 0, 0, $sort);
//Fylder meget med hvid
imagefill($image_p, 5, 5, $hvid);
//Fylder kant med sort
imagefill($image_p, 0, 65, $sort);
//Fylder kant med sort
imagefill($image_p, 195, 0, $sort);

//størrelsen på skriften
$font_size = 10;

$tekst = "test-text";
$hoejde = imagesy($image_p)/2;
$bredde_temp = imagesx($image_p)/2;
$tekstlng = strlen($tekst);
$tekst_temp = $tekstlng*3;
$bredde = $bredde_temp-$tekst_temp;

$nyhoejde = $hoejde-1;
$nybredde = $bredde-1;

ImageTTFText($image_p, $font_size, 0, $bredde, $hoejde, $lys, "./fonts/verdana.ttf", $tekst);
ImageTTFText($image_p, $font_size, 0, $nybredde, $nyhoejde, $moerk, "./fonts/verdana.ttf", $tekst);


// Content type
header('Content-type: image/jpeg');

// Output
imagejpeg($image_p, null, 100);
?>
Avatar billede coderdk Praktikant
21. april 2005 - 00:23 #1
Lav dette:

//Fylder kant med sort
imagefill($image_p, 0, 0, $sort);
//Fylder meget med hvid
imagefill($image_p, 5, 5, $hvid);
//Fylder kant med sort
imagefill($image_p, 0, 65, $sort);
//Fylder kant med sort
imagefill($image_p, 195, 0, $sort);


om til:

// Fylder hele billedet med sort
imagefill($image_p, 0, 0, $sort);
// Lav hvidt rektangel
imagerectangle($image_p, 5, 5, 195, 65, $hvid);
// Fyld rektangel med hvid
imagefill($image_p, 6, 6, $hvid);
Avatar billede Slettet bruger
21. april 2005 - 13:22 #2
Ahh den vil jeg gerne have forklare. I den sidste imagefill(), fylder du vel fra (x,y) = (6,6) til (x, y) = (200,70) Med hvid?
Avatar billede coderdk Praktikant
21. april 2005 - 13:28 #3
Nopes :) Den første fill fylder HELE billedet med sort, så tegner vi et hvidt rektangel - Denne bliver ikke udfyldt som standard, så jeg fylder én gang til med hvid inde i rektanglen :)
Avatar billede Slettet bruger
21. april 2005 - 13:39 #4
Oki :o)

Kan det lade sig gøre (teoretisk set) at fylde hele billedet med hvid _efter_ at have lavet et rektangel, eller skal dette ske i starten?
Avatar billede coderdk Praktikant
21. april 2005 - 14:11 #5
Mjah, rektanglet afgrænser fill, så at sige, så du ville skulle bruge fill to gange - én indenfor og én udenfor rektanglet!
Avatar billede Slettet bruger
22. april 2005 - 08:14 #6
Okay, det vil jeg prøve at bruge så :o)

Hvis jeg vil bruge knapperne til en dynamisk navigation, vil det da være smartest at lave billederne og gemme dem i en mappe, eller at lave dem hver gang siden loades?
Avatar billede coderdk Praktikant
22. april 2005 - 10:32 #7
Det første! Det ville være smartest at cache dem, altså lave dem hvis de ikke eksisterer i mappen :)
Avatar billede Slettet bruger
22. april 2005 - 11:10 #8
Der hoppede kæden af :o)

Jeg opretter selv "menupunkter" i mysql databasen, idet jeg gør det kan jeg også lave selve billederne. Vil det være optimalt?
Avatar billede coderdk Praktikant
22. april 2005 - 12:33 #9
Yeps! Når der bliver oprettet eller rettet menupunkter genererer du bare dem der skal genereres :)
Avatar billede Slettet bruger
22. april 2005 - 12:37 #10
Ved du med hvilken funktion man kan gemme billeder som jpeg?
Avatar billede coderdk Praktikant
22. april 2005 - 12:39 #11
imagejpeg( $image_resource, "filnavn", kvalitet_som_tal );

http://dk2.php.net/imagejpeg
Avatar billede Slettet bruger
22. april 2005 - 12:51 #12
oki, jeg søgte under "image save". En lille smutter må man sige :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester