Avatar billede cmau Nybegynder
29. april 2005 - 14:34 Der er 12 kommentarer og
1 løsning

Bestemmer at breden skal være 130 px på et billede

Hejsa, jeg er igang med den resize funktion, den skal gøre så billedet bliver 130 px bredt også skal højden passe derefter.

jeg ved i hvert fald at jeg skal bruge:

$size = getimagesize($mappe.$img_id.$type);

Men hvordan jeg regner det ud har jeg glemt alt om.
Avatar billede kasperbn Nybegynder
29. april 2005 - 14:38 #1
Faktisk kan du gøre sådan her:
<!-- html -->
<img src="src.jpg" width="130">

Så tilpasser browseren selv højden...

dvs. din funktion kunne være:

function resizePic() {
    return = 'width="130"';
}

og så kan du kalde den i htmlkoden:
<img src="src.jpg" <?resizePic();?>>
Avatar billede kasperbn Nybegynder
29. april 2005 - 14:39 #2
sorry:

function resizePic() {
    echo 'width="130"';
}
Avatar billede cmau Nybegynder
29. april 2005 - 16:40 #3
Nej det er slet ikke sådan. Jeg mener resize billede via. php, så det ikke fylder så meget
Avatar billede cmau Nybegynder
29. april 2005 - 17:10 #5
coderdk ved godt vike jeg skal bruge, men jeg skal have sådan at den selv regner ud hvad højden skal være når breden bliver til 130, så den ikke trækker billedet for langt. Det er en matematisk udregning, som jeg ikke kan huske.
Avatar billede coderdk Praktikant
29. april 2005 - 17:58 #6
Det må vel være noget i stil med:

    $srcim = imagecreatefromjpeg( 'billede.jpg' );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $scale = 130 / $ow;
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw ,$nh ,$ow ,$oh );
    imagejpeg( $dstim, "nytbillede.jpg", 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
Avatar billede coderdk Praktikant
29. april 2005 - 17:59 #7
Og et svar ;)
Avatar billede cmau Nybegynder
29. april 2005 - 19:32 #8
Dvs. at det bare er at dividere den nye brede med den gamle højde? også afrunde? Er du nu sikker?
Avatar billede coderdk Praktikant
29. april 2005 - 19:49 #9
Prøv ;)
Avatar billede coderdk Praktikant
29. april 2005 - 19:52 #10
Ja, det er jo dividere den nye bredde med den gamle, og gange dette tal med den gamle bredde, og den gamle højde ;)
Avatar billede cmau Nybegynder
30. april 2005 - 11:01 #11
Nå ja det er jo rigtigt, det er mig der slet ikke kan tænke matematisk lige nu :) Tusind tak.
Avatar billede cmau Nybegynder
30. april 2005 - 11:04 #12
Du behøves jo ikke at regne denne linje:
$nw = round( $ow * $scale, 0 );

Der kan du bare skrive:
$nw = 130;
Avatar billede coderdk Praktikant
30. april 2005 - 13:45 #13
Netop ;)
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