hvordan gøre jeg sådan at billedet er kun 940px og 400 height

Tags:    php

Hej


Jeg er lige pt i gang med en skole opgave og det er sådan at jeg kun godt tænke mig at gøre sådan at den kun må være 940px og 400height max. altså hvis et billedet er 970px og 500px height så gå den ned til at blive 940px og 400px height

Håber du kan hjælp mig på en måde :D

det må gerne være så lidt kode som muligt da da jeg bruger det her lige nu

[div]

<a href="billede_ind.php">Tilbage igen</a>
<br />
<?php
$filnavn=$_FILES['file']['name'];
$tmp_navn=$_FILES['file']['tmp_name'];
//echo "du har uploadet filen: $filnavn. Midlertidigt filnavn: $tmp_navn";

move_uploaded_file($tmp_navn, "billeder/$filnavn");

echo "<img src='billeder/$filnavn' />";



?>
[/div]

Håber du vireligt vil hjælp mig med det :D



9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Du skal huske med billeder, at de skal beholde bredde/højde forholdet. Forestil dig et billede med en person, der er 600 pixels i bredden og 1000 i højden som du pludselig ændrer til 940 pixels i bredden og stadig 400 i højden. Vedkommende kommer til at se ret så sjov ud.

Så enten skal du beskære billedet til 940px gange 400px, men så med en beskæring fjerner man noget af billedet og det er ikke så smart.

Så din fremgangsmåde bør være, hvis en bruger uploader et billeder på 3000px i bredden og 1200px i højden, beregner du først størrelsesforholdet, ved at sige forhold = bredde / højde. Altså 3000 / 1200 som giver 2,5.

Derefter ved du, at du max. vil tillade 940px i bredden efter upload og du ved at brugerens billede har et forhold der er 2,5. Så siger du f.eks. nybredde = 940 og nyhøjde= 940/2,5

På den måde får det uploadede billede altid samme bredde / højde forhold, selv om du nedskalerer til 940px i bredden.

php koden til det må andre hjælpe dig med :-)



Indlæg senest redigeret d. 15.12.2011 09:25 af Bruger #9814
Som Brian allerede har sagt så det vigtigt du bibeholder bredde/højde forholdet. Det kan du gøre ved at sætte dit image-tag (<img>;) til en større/mindre højde eller bredde og så længe du kuun ændrer en af disse to sider bibeholder du automatisk bredde/højde forholdet. Og så vil browseren selv skalere billedet på klienten.


Det er altid en god ide, at browseren kender både bredde og højde når billederne defineres med et IMG tag. For det første, er det tidskrævende for browseren at finde ud af det selv og for det andet, vil en side med f.eks. 50 billeder hvor browseren ikke kender enten bredde eller højde, hoppe og danse mens den loader billederne. Så det kan ikke anbefales at gøre som du foreslår.

Så en nedskalering af billederne på upload-tidspunkt vil give mulighed for at sætte både bredde og højde på IMG tag - og så fylder det mindre på serveren, hvilket dog nok ikke betyder det store i dag.



Indlæg senest redigeret d. 15.12.2011 09:34 af Bruger #9814
Okay jeg kan godt se hvad du mener Brian :)



Som Brian allerede har sagt så det vigtigt du bibeholder bredde/højde forholdet. Det kan du gøre ved at sætte dit image-tag (<img>;) til en større/mindre højde eller bredde og så længe du kuun ændrer en af disse to sider bibeholder du automatisk bredde/højde forholdet. Og så vil browseren selv skalere billedet på klienten.

Hvis din side meget billedrig er det en god ide at du ikke gør dette med for mange billeder da det pludselig kan blive en fortrinsvis "tung" side fordi klienten skal skalere mange billeder hvilket kan blive svært med måske 50 billeder der sendes i stort format, men som skal skaleres meget ned.



Det er altid en god ide, at browseren kender både bredde og højde når billederne defineres med et IMG tag. For det første, er det tidskrævende for browseren at finde ud af det selv og for det andet, vil en side med f.eks. 50 billeder hvor browseren ikke kender enten bredde eller højde, hoppe og danse mens den loader billederne. Så det kan ikke anbefales at gøre som du foreslår.

Så en nedskalering af billederne på upload-tidspunkt vil give mulighed for at sætte både bredde og højde på IMG tag - og så fylder det mindre på serveren, hvilket dog nok ikke betyder det store i dag.
Absolut rigtigt. Man kan enten beregne begge dele nu man har bredde/højde-forholdet, men som du siger meget bedre at nedskalere det til den størrelse det altid skal være.
Ikke alene fylder det mindre, men vil heller ikke kræve så meget browser arbejde, og data der sendes fylder heller ikke så meget (som selvfølgelig skal sendes til klienten) som vil gøre at siden er meget hurtigere til at loade og reagere for dermed at gøre det bliver en bedre brugeroplevelse.



Jesper, jeg googlede lige noget kode i php der kan det du ønsker.

http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

Og det giver netop også mulighed for at beholde størrelsesforholdet.



Kunne du ikke bare bruge jQuery?

jQuery imgareaselect



Kunne du ikke bare bruge jQuery?

jQuery imgareaselect


Den laver jo netop et crop / udsnit af billedet og man skærer derfor noget af billedet væk. Desuden ændrer det ikke på størrelsen af billedefilen, så den er stadig lang tid om at loade, hvis en bruger uploader et billede på 2mb.



Ellers så brug standard JavaScript:

Fold kodeboks ind/udJScript kode 


Jeg ved godt at det sikkert ser forkert ud, men jeg skal også lige have finpudset min JavaScript del. Jeg bruger mere jQuery.



Indlæg senest redigeret d. 21.12.2011 10:55 af Bruger #16025
t