Avatar billede Slettet bruger
15. september 2005 - 16:23 Der er 28 kommentarer og
1 løsning

Hvordan resizer man et billede

Hvilke funktioner skal man bruge for at resize et billede, og hvordan tjekker man hvad størrelse billede har?
Avatar billede Slettet bruger
15. september 2005 - 16:49 #2
Hvis det var muligt du kunne give mig den del af svaret, da jeg ikke lige pt. har ret meget tid.
Avatar billede klaske_ko Nybegynder
15. september 2005 - 16:54 #3
jamen du skal bruge GD lib til at resize hvis du vil spare dig selv og dine clienter tid.

Ellers kan du jo bare bruge <img src="blabla.jpg" width="xx" heigth="xx" border="0" title="Se mig! :D">

Men som skrevet før, kig her :
http://www.udvikleren.dk/article.php?aid=182&techid=6

Der står svaret egenlig i, så ved ikke helt præcist hvad du søger. Uddbyb, og gerne for mere end 30
Avatar billede Slettet bruger
15. september 2005 - 17:00 #4
Jeg skal have mit billede til at blive resize, men kiggede lige lidt på det du skrev der resizer den billede til: 75 * 75, men hvad hvis billede's promationer er 1280 * 768 så vil det jo se grimt ud hvis det bliver resize til 75 * 75, så på en eller anden må skal jeg bruge et script der for billede til at beholde dets promationer
Avatar billede klaske_ko Nybegynder
15. september 2005 - 17:38 #5
Jamen, har du noget konkret eksempel på det du ønsker?
Altså hvad vil du bruge det til, det er lidt lettere at arbejde derud fra..
Avatar billede fixxxer Nybegynder
15. september 2005 - 17:39 #6
Det har været oppe før (og nok mere end en gang - det kræver selvfølgelig at man ved hvordan proportioner staves ;)

http://eksperten.dk/spm/256033
Avatar billede Slettet bruger
15. september 2005 - 17:47 #7
Der skal lægges nogen billeder op som en af mine venner tager med sit digtitalt kamera, og jeg kender ikke opløsningen.

Og når han så lægger dem op, så må det maks fylde 200 * 150 pixel.
Avatar billede klaske_ko Nybegynder
15. september 2005 - 17:49 #8
Så, du skal altså have et billede galleri lign noget? - Så vil jeg sige at mit første svar er LIGE det du søger :D

Den gør nemlig det, at når billedet uploades, laves der et minibillede, og hvis man ønsker kan du jo så bruge minibilledet som thumbnail, og så linke til det rigtige billede i fuld størrelse hvis det ønskes :)
Avatar billede Slettet bruger
15. september 2005 - 17:51 #9
Min kode: Har nemlig allerede upload script. (Ved godt det ikke valideres eller lign.)

    if(isset($_POST['create_new_student_go'])) {
        if(empty($_POST['slut_dato']) OR (empty($_POST['name'])) OR (empty($_POST['note']))) {
            echo "Du mangler at udfylde noget";
        } else {       
if(!empty($_POST['upfil'])) {
    //billede

$uploaddir = 'students/';
$uploadfile = $uploaddir . basename($_FILES['upfil']['name']);
$filen = $_FILES["upfil"]["name"];
if (move_uploaded_file($_FILES['upfil']['tmp_name'], $uploadfile)) {
  echo "Eleven og billede er tilføjet.\n";
  mysql_query("INSERT INTO hansan_student (name, slut_dato, pic, note) VALUES ('$_POST[name]','$_POST[slut_dato]','$filen','$_POST[note]')") or die(mysql_error());
} else {
    echo "Fil ikke godkendt.";
}
    } else { // empty
    mysql_query("INSERT INTO hansan_student (name, slut_dato, note) VALUES ('$_POST[name]','$_POST[slut_dato]','$_POST[note]')") or die(mysql_error());
    }
        }//else {
        exit();
    }//isset
?>
<form action="<?PHP echo $PHP_SELF; ?>" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>Tilføj ny elev:</legend>
<table width="100%">
<tr align="left" valign="top">
<td width="30%" align="left" valign="top" class="text">
<fieldset style="width: 350px;">
<legend>Navn på elev:</legend>
<input type="text" name="name" style="width: 350px;">
</fieldset>
</td>

<td width="10%" align="left" valign="top" class="text">
<fieldset style="width: 105px;">
<legend>Dato for beståelse:</legend>
<input type="text" name="slut_dato" value="2005-12-24" maxlength="10" size="8">
</fieldset>
</td>

<td width="20%" align="left" valign="top" class="text">
<fieldset style="width: 105px;">
<legend>Upload billede:</legend>
<input type="file" name="upfil">
</fieldset>
</td>
</tr>

<tr align="left" valign="top">
<td colspan="3" align="left" valign="top" class="text">
<fieldset style="width: 105px;">
<legend>Besked til eleven:</legend>
<textarea rows="15" cols="75" name="note"></textarea>
</fieldset>
</td>
</tr>

<tr>
<td align="left" valign="top" class="text"><input type="submit" name="create_new_student_go" value="Tilføj"></td>
</tr>
</table>
</fieldset>
</form>
Avatar billede Slettet bruger
15. september 2005 - 17:53 #10
Nu vil jeg så bare have der kun kommer et lille billede: størrelse er 148 * 152 (men det kan jeg jo altid selv rette til)
Avatar billede Slettet bruger
15. september 2005 - 17:53 #11
Den skal lægge billede op i det lille format, og der skal kun være det billede
Avatar billede Slettet bruger
15. september 2005 - 18:30 #12
Inget respons nu her :D
Avatar billede Slettet bruger
15. september 2005 - 19:19 #13
Men hvordan får jeg så trukket ud hvad mit billeds størrelser er?
Avatar billede Slettet bruger
15. september 2005 - 19:44 #14
Har nu sat den til at resize og så har jeg bare 2 af det samme billede, et stort og et lille:

Her er koden:


if(!empty($_FILES["upfil"])) {
    //billede

$uploaddir = 'students/';
$uploadfile = $uploaddir . basename($_FILES['upfil']['name']);
$filen = $_FILES["upfil"]["name"];
if (move_uploaded_file($_FILES['upfil']['tmp_name'], $uploadfile)) {
  echo "Eleven og billede er tilføjet.\n";

$newSizeWidth    = 75;
$newSizeHeight    = 75;
imageresize($uploadfile, $newSizeWidth, $newSizeHeight, "students/small_" . $filen);

  mysql_query("INSERT INTO hansan_student (name, slut_dato, pic, note) VALUES ('$_POST[name]','$_POST[slut_dato]','$filen','$_POST[note]')") or die(mysql_error());
} else {
    echo "Fil ikke godkendt.";
}
    } else { // empty
    mysql_query("INSERT INTO hansan_student (name, slut_dato, note) VALUES ('$_POST[name]','$_POST[slut_dato]','$_POST[note]')") or die(mysql_error());
    }
        }//else {
        exit();
    }//isset
?>



Men den melder bare fejlen:
Eleven og billede er tilføjet.
Fatal error: Call to undefined function: imageresize() in admin.php on line 271
Avatar billede Slettet bruger
15. september 2005 - 19:46 #15
Kan heller ikke finde functionen imageresize() inde på php.net
Avatar billede Slettet bruger
15. september 2005 - 20:29 #16
Slet ingen der kan hjælpe mig?
Avatar billede mikze Nybegynder
15. september 2005 - 20:56 #17
Jo :-) 2 sek.
Avatar billede mikze Nybegynder
15. september 2005 - 21:29 #18
Denne kode burde gøre det:



-------------------- HER STARTER FILEN --------------------

<?php


//Gør at den ikke viser billedets dimensioner med mindre der er postet
$error = true;

//Hvis der er postet så fortsæt
if(isset($_FILES["mitbillede"]["name"])) {


//Størrelsen som billedet skal resizes til sættes.
$maxwidth  = $_POST["maximgwidth"];
$maxheight = $_POST["maximgheight"];




//Klargører nogle fejlvariabler
$error = false;
$errorinfo = "";



//Finder filtype
$ext    = strtolower(end(explode(".", $_FILES["mitbillede"]["name"])));
if(empty($_FILES["mitbillede"]["name"])) {
    $error = true;
    $errorinfo .= "<li>Du mangler at vælge et billede";
}




//Opretter billede
if(strtolower($ext) == "jpg" || strtolower($ext) == "jpeg") {
    $im = imagecreatefromjpeg($_FILES["mitbillede"]["tmp_name"]);
}
elseif(strtolower($ext) == "gif") {
    $im = imagecreatefromgif($_FILES["mitbillede"]["tmp_name"]);
}
elseif(strtolower($ext) == "png") {
    $im = imagecreatefrompng($_FILES["mitbillede"]["tmp_name"]);
}
else {
    $error = true;
    $errorinfo .= "<li>Billedet må kun være <b>GIF</b>, <b>JPG</b> og <b>PNG</b>";
}



//Hvis der ikke er nogle fejl
if(!$error) {

    //Hvis billedet allerede findes, så slet det
    if(file_exists("billede.jpg")) {
        unlink("billede.jpg");
    }
   
    //Finder billedets dimensioner (pixels)
    $im_width    = imageSX($im);
    $im_height      = imageSY($im);


    //Opretter et nyt tomt billede
    $new_im = imagecreatetruecolor($maxwidth,$maxheight);


    //Resizer og kopierer det originale billede
    imagecopyresampled($new_im,$im,0,0,0,0,$maxwidth,$maxheight,$im_width,$im_height);


    //Udskriver billedet
    imagejpeg($new_im,"./billede.jpg",80);
    echo "<img src=\"billede.jpg\" name=\"theimage\"><br><br><br>";

}
}
?>
<font color="#800000">

<font size="2" face="Verdana">
<font color="#800000">
<?php if(!empty($errorinfo)) { echo $errorinfo; } else { if(!$error) { echo "Billedets originale bredde: ".$im_width."<br>Billedets originale højde:".$im_height."<br>-------<br>Billedet nye bredde: ".$maxwidth."<br>Billedets nye højde: ".$maxheight; } }?>

<font color="#000000">

<form action="" method="post" enctype="multipart/form-data">



<b>Fil:</b><br>
<input type="file" name="mitbillede" style="font-size: 12px; font-family: Verdana; color: #000000; border: 1px #336699 solid;">
<br><br>

<b>Bredde som billedet skal resizes til:</b><br>
<input type="text" name="maximgwidth" value="350" style="font-size: 12px; font-family: Verdana; color: #000000; border: 1px #336699 solid;">
<br><br>

<b>Højde som billedet skal resizes til:</b><br>
<input type="text" name="maximgheight" value="350" style="font-size: 12px; font-family: Verdana; color: #000000; border: 1px #336699 solid;">
<br><br>

<input type="submit" style="font-size: 12px; font-family: Verdana; color: #000000; border: 1px #336699 solid; background-color: #FFFFFF;">
</form>


<br><br><br><br>
OBS: Hvis billedet ikke vises som det korrekte, så tryk "opdatér".






















-------------------- HER SLUTTER FILEN --------------------
Avatar billede Slettet bruger
16. september 2005 - 08:29 #19
men billede størrelse skal man ikke selv sætte, det skal sættes til 148 * 152(så tæt på som muligt så det ikke ødelægger propotionernes
Avatar billede mikze Nybegynder
16. september 2005 - 12:07 #20
Denne kode resizer automatisk billedet til 148px * 152px :)

-------------------- HER STARTER FILEN --------------------

<?php


//Gør at den ikke viser billedets dimensioner med mindre der er postet
$error = true;

//Hvis der er postet så fortsæt
if(isset($_FILES["mitbillede"]["name"])) {


//Størrelsen som billedet skal resizes til sættes. HER KAN DU OGSÅ RETTE!!!!!!!!
$maxwidth  = 148;
$maxheight = 152;




//Klargører nogle fejlvariabler
$error = false;
$errorinfo = "";



//Finder filtype
$ext    = strtolower(end(explode(".", $_FILES["mitbillede"]["name"])));
if(empty($_FILES["mitbillede"]["name"])) {
    $error = true;
    $errorinfo .= "<li>Du mangler at vælge et billede";
}




//Opretter billede
if(strtolower($ext) == "jpg" || strtolower($ext) == "jpeg") {
    $im = imagecreatefromjpeg($_FILES["mitbillede"]["tmp_name"]);
}
elseif(strtolower($ext) == "gif") {
    $im = imagecreatefromgif($_FILES["mitbillede"]["tmp_name"]);
}
elseif(strtolower($ext) == "png") {
    $im = imagecreatefrompng($_FILES["mitbillede"]["tmp_name"]);
}
else {
    $error = true;
    $errorinfo .= "<li>Billedet må kun være <b>GIF</b>, <b>JPG</b> og <b>PNG</b>";
}



//Hvis der ikke er nogle fejl
if(!$error) {

    //Hvis billedet allerede findes, så slet det
    if(file_exists("billede.jpg")) {
        unlink("billede.jpg");
    }
   
    //Finder billedets dimensioner (pixels)
    $im_width    = imageSX($im);
    $im_height      = imageSY($im);


    //Opretter et nyt tomt billede
    $new_im = imagecreatetruecolor($maxwidth,$maxheight);


    //Resizer og kopierer det originale billede
    imagecopyresampled($new_im,$im,0,0,0,0,$maxwidth,$maxheight,$im_width,$im_height);


    //Udskriver billedet
    imagejpeg($new_im,"./billede.jpg",80);
    echo "<img src=\"billede.jpg\" name=\"theimage\"><br><br><br>";

}
}
?>
<font color="#800000">

<font size="2" face="Verdana">
<font color="#800000">
<?php if(!empty($errorinfo)) { echo $errorinfo; } else { if(!$error) { echo "Billedets originale bredde: ".$im_width."<br>Billedets originale højde:".$im_height."<br>-------<br>Billedet nye bredde: ".$maxwidth."<br>Billedets nye højde: ".$maxheight; } }?>

<font color="#000000">

<form action="" method="post" enctype="multipart/form-data">



<b>Fil:</b><br>
<input type="file" name="mitbillede" style="font-size: 12px; font-family: Verdana; color: #000000; border: 1px #336699 solid;">
<br><br>

<input type="submit" style="font-size: 12px; font-family: Verdana; color: #000000; border: 1px #336699 solid; background-color: #FFFFFF;">
</form>


<br><br><br><br>
OBS: Hvis billedet ikke vises som det korrekte, så tryk "opdatér".



-------------------- HER SLUTTER FILEN --------------------
Avatar billede Slettet bruger
16. september 2005 - 16:26 #21
men så holder det jo heller ikke proportionen.
Avatar billede Slettet bruger
16. september 2005 - 17:25 #22
Jamen det er fint nok, bruger bare dit script, men hvorfor tjekker den kun om filen (billede.jpg) eksister?
Avatar billede mikze Nybegynder
16. september 2005 - 20:55 #23
så kan de ikke bare trykke på SEND med det samme, så skal de vælge et billede :-)
Avatar billede Slettet bruger
17. september 2005 - 17:16 #24
hvad mener du med at de skal vælge et billede?
Den skal jo bare upload filen til navnent: $_FILES["mitbillede"]["name"];
Avatar billede mikze Nybegynder
18. september 2005 - 13:48 #25
Ja det kan de, men hvis nu at de bare trykker POST uden at trykke på gennemse... knappen, så melder den fejl om at billedet ikke var tilgængeligt ?-)
Avatar billede Slettet bruger
18. september 2005 - 18:13 #26
Nåre på den måde, jamen de skal jo også vælge et billede som skal uploades, det er jo det der er pointen... :D
Avatar billede Slettet bruger
19. september 2005 - 08:05 #27
Men de har jo mulighed for at vælge den fil der skal uploades ved hjælp af din <input type="file" ....> jo
Avatar billede Slettet bruger
19. september 2005 - 16:19 #28
Eller kan du ikke klare den?
Avatar billede Slettet bruger
30. april 2006 - 10:35 #29
takker...
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