Avatar billede noodrem Nybegynder
05. maj 2006 - 20:26 Der er 11 kommentarer og
2 løsninger

Resize af billeder

Hej

Findes der et script der resizer ens billede til en bestemt størrelse?
Avatar billede michael_stim Ekspert
05. maj 2006 - 20:29 #1
Masser
Avatar billede michael_stim Ekspert
05. maj 2006 - 20:30 #2
Du vil måske ha' et? ;o)

function resize( $filename, $newfilename, $maxw, $maxh ){
    $result = false;
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $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 );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}
Avatar billede noodrem Nybegynder
05. maj 2006 - 20:33 #3
haha nemlig ja :)

Skal jeg bare ændre værdierne i:

function resize( $filename, $newfilename, $maxw, $maxh ){

Så det passer til mit script, og så skulle den være hjemme?
Avatar billede michael_stim Ekspert
05. maj 2006 - 20:34 #4
Kommer jo an på hvordan dit script ser ud ;o)
Avatar billede michael_stim Ekspert
05. maj 2006 - 20:38 #5
Du kan få hele molesjovsen her. Så skal du bare tänke på at ändre $_POST variablerne, og stier:

function replace_string($ind_str){
    $soketter = array("æ","ø","å","Æ","Ø","Å"," ");
    $byttil = array("ae","oe","aa","AE","OE","AA","_");
    $tekst = str_replace($soketter,$byttil,$ind_str);
    return $tekst;
}
function resize( $filename, $newfilename, $maxw, $maxh ){
    $result = false;
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $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 );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}
if(isset($_POST['submit'])){
    if($_FILES["upfil"]["size"] > 0) {
        $konfiguration["upload_bibliotek"] = "../images";
        $konfiguration["max_stoerrelse"] = "10000";
       
        /* Hvor flytter vi fra og til */
        $fra = $_FILES["upfil"]["tmp_name"];
        $til = $konfiguration["upload_bibliotek"] . "/" . replace_string($_FILES["upfil"]["name"]);
        $til_t = $konfiguration["upload_bibliotek"] . "/thumb_" . replace_string($_FILES["upfil"]["name"]);
       
        /* Check PHP-version */
        list($major, $minor, $rev) = explode(".", phpversion());
        if($major < 4){
          die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
      }
   
        /* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
      if($minor < 1){
          $_FILES = $HTTP_POST_FILES;
        $_POST = $HTTP_POST_VARS;
        $_SERVER = $HTTP_SERVER_VARS;
      }
   
      /* Accepterer vi filens stoerrelse? */
      $fil_stoerrelse = filesize($fra)/1024;
      if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){
          die("Desværre - filen er for stor. Jeg accepterer kun " .
        $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
        ceil($fil_stoerrelse, 1) . " kb");
      }
   
      if(function_exists("move_uploaded_file")) {
        resize($fra, $til, 600, 400);
          resize($fra, $til_t, 200, 130);
        }
        else {
          copy($fra, $til);
        }
    }
Avatar billede michael_stim Ekspert
05. maj 2006 - 20:40 #6
PS, den ändre også äöå (bare på dansk ;o)) til oe ao aa, da explorer ikke rigtigt kan klare den.
Avatar billede michael_stim Ekspert
05. maj 2006 - 20:41 #7
Hov, et glas vin for meget. oe ae... Men du fatter nok.
Avatar billede lassemelbye Nybegynder
05. maj 2006 - 22:29 #8
Dettte script laver filen text.jpg om til halv størrelse.
Det skal være jpeg format

<?php
// File and new size
$filename = 'test.jpg';
$percent = 0.5;

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

// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Output
imagejpeg($thumb);
?>
Avatar billede noodrem Nybegynder
07. maj 2006 - 12:55 #9
Bliver kvaliteten bedre end hvis jeg resizer ved at skrive:

<img width='300 src='XX'>

Og derved resizer til 300 width end ved at gøre det gennem scriptet?
Avatar billede michael_stim Ekspert
20. maj 2006 - 09:56 #10
Lukketid?
Det er ikke måden at göre det på (<img...>). Det beholder störrelsen i mp på billedet
Avatar billede noodrem Nybegynder
29. maj 2006 - 12:05 #11
Undskyld den langsomme responstid, og tak for svarene allesammen
Avatar billede noodrem Nybegynder
29. maj 2006 - 12:08 #12
Lige et sidste kald inden den endelige lukning ;o)

Er det kun Lassemelbye's script der ændrer filen størrelse eller gør michael stims det også?
Avatar billede michael_stim Ekspert
29. maj 2006 - 12:16 #13
resize($fra, $til, 600, 400); //Her bestemmer du størrelsen ;o) max bredde og højde
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