Avatar billede sorensen_123 Nybegynder
09. april 2007 - 16:00 Der er 6 kommentarer og
1 løsning

GD-lib hjælp.

Hejsa,

Jeg mangler lidt hjælp til GD-lib.

Jeg vil have at man skal kunne uploade et billede (gif, jpg eller png) og så skal gdlib konvertere billedet til jpg.
Derefter skal den resize billedet i længden (dvs. så højden automatisk tilpasser sig), længden skal være 500px.

Derefter skal der så sættes en sort bund ind i billedet. Den skal være ca. 30px høj (skal selv kunne ændre det), og i venstre side skal der være en tekst, som jeg selv vælger, og i højre side skal der være en tekst som kommer fra variablen $bruger.

Derefter skal den gemme billedet, med samme navn som $bruger.

Det vil sige at billedet med bunden skulle komme til at se sådan her ud ca:
http://www.thegn.com/news/cgi.jpg

Nogen der kan klare det??

Sætter 150 points af, for måske er det et lidt stort arbejde at lave..
Avatar billede jakobdo Ekspert
09. april 2007 - 18:39 #1
Prøv at se her: http://www.codebreaker.dk/exp/772344exp.php
Er det noget i den stil?
Avatar billede sorensen_123 Nybegynder
09. april 2007 - 19:37 #2
Det er jo lige præcis det jeg ledte efter!!!

Smid svar og zip/rar/tar så får du points!
Avatar billede jakobdo Ekspert
09. april 2007 - 19:50 #3
<?php
//http://www.eksperten.dk/spm/772344

$imageDir = getcwd() . '/772344/';                    //Hvor skal billeder uploades?
$imageExtensions = array('jpeg','jpg','gif','png');    //Hvilke filer vil vi acceptere?
$newFileName    = md5(uniqid(rand(), true)) . '.jpg'; //Skal sættes sammen med $bruger i endelig version...
$maxWidth        = 500;                                //Max bredde/width, pixels
$boxHeight      = 30;                                //Pixels
$leftText        = 'Left Text!';                      //Tekst i venstre side.
$rightText      = 'Right Text, $bruger';              //Tekst i højre side, skal sættes = $bruger
$font            = 2;                                  //Skal være en font eller 1-5.

//Har vi en fil?
if($_FILES['myFile']['size']>0)
{
    $ext = strtolower(end(explode('.',$_FILES['myFile']['name'])));
    if(in_array($ext,$imageExtensions))
    {
        if(resize($_FILES['myFile']['tmp_name'],$imageDir . $newFileName,$ext,$maxWidth,$boxHeight,$leftText,$rightText,$font))
            echo '<img src="772344/'.$newFileName.'" /><br />';
    }
}

echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data">';
echo '<p>Billedet: <input type="file" name="myFile" /></p>';
echo '<p><input type="submit" name="upload" value="Upload billede" /></p>';
echo '</form>';

//Hjælpe funktion til at resize billedet...
function resize($filename, $newfilename, $type, $maxw, $boxHeight, $leftText, $rightText, $font)
{
    $result = false;
    switch($type)
    {
        case 'jpg':
        case 'jpeg':
            $srcim = imagecreatefromjpeg( $filename );
            break;
        case 'gif':
            $srcim = imagecreatefromgif( $filename );
            break;
        case 'png':
            $srcim = imagecreatefrompng( $filename );
            break;
    }
   
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $scale = $maxw / $ow;

    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
   
    $dstim = imagecreatetruecolor( $nw, $nh  + $boxHeight);
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    $textcolor = imagecolorallocate($dstim, 255, 255, 255);
    $fontWidth = imagefontwidth($font);
    $textHeight = $nh + 10;
    imagestring($dstim,$font,10,$textHeight,$leftText,$textcolor);
    imagestring($dstim,$font,$nw - 10 - ((strlen($rightText) * $fontWidth)),$textHeight,$rightText,$textcolor);
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}

?>
Avatar billede sorensen_123 Nybegynder
09. april 2007 - 19:56 #4
Tusind tak!

Points er givet!!
Avatar billede jakobdo Ekspert
09. april 2007 - 22:00 #5
takker for point.
Avatar billede sorensen_123 Nybegynder
10. april 2007 - 15:12 #6
Det var så lidt, nu har du jo hjulpet mig..

Men har et lille problem, jeg har sat calibri (std. vista og office 2007 font) som font ved at ændre fontvariablen til $font = "calibri.ttf"; og så ligge calibri i mappen sammen med.. Den viser jo selvfølgelig skriften, men den er meget lille.. Hvor kan man ændre skriftstørrelse? :)
Avatar billede jakobdo Ekspert
10. april 2007 - 15:24 #7
Så skal du bruge denne funktion:
imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )

I stedet for:
imagestring($dstim,$font,10,$textHeight,$leftText,$textcolor);
    imagestring($dstim,$font,$nw - 10 - ((strlen($rightText) * $fontWidth)),$textHeight,$rightText,$textcolor);
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