Gå til innhold

Resizing av bilder som blir sendt til en mappe ?


Anbefalte innlegg

Har stresset i flere dager nå med å finne et script som automatisk resizer bilder som blir lastet opp av en form i CuteNews.

 

Er det mulig å få alle bildene som blir lastet opp til en mappe, til å automatisk resize seg til f.eks width: 500px hvis bildet er større en 500px, og at bildet sklir rett inn i mappen hvis det er under 500px.

 

Håper noen kan hjelpe meg i gang, er nybegynner :ermm:

 

Her et image scriptet til CuteNews

<?PHP

if($member_db[1] > 3 or ($member_db[1] != 1 and $action == "doimagedelete")){ msg("error", "Tillgang nektet", "Du har ikke tillgang til å laste opp bilder"); }

 

$allowed_extensions = array("gif", "jpg", "png", "bmp", "jpe", "jpeg");

 

 

// ********************************************************************************

// Show Images List

// ********************************************************************************

if($action != "doimagedelete")

{

if($action == "quick")

    {

    echo"<html>

  <head>

  <title>Legg til bilde</title>

  <style type=\"text/css\">

  <!--

  select, option, textarea, input {

    BORDER: #808080 1px solid;

    COLOR: #000000;

    FONT-SIZE: 11px;

    FONT-FAMILY: Verdana; BACKGROUND-COLOR: #ffffff

  }

  BODY, TD {text-decoration: none; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt;}

            a:active,a:visited,a:link {font-size : 10px; color: #808080; font-family: verdana; text-decoration: none;}

  a:hover {font-size : 10px; color: #000000; font-family: verdana; text-decoration: none; }

            .panel  { border: 1px dotted silver; background-color: #F7F6F4;}

  -->

  </style>

  </head>

  <body bgcolor=#FFFFFF>

  <script language=\"javascript\" type=\"text/javascript\">

  <!--

  function insertimage(text) {

          text = ' ' + text + ' ';

          opener.document.forms['addnews'].$area.focus();

          opener.document.forms['addnews'].$area.value  += text;

          opener.document.forms['addnews'].$area.focus();

        window.close();

  }

  //-->

  </script>";

    }else{ echoheader("images","Verktøy for bilder"); }

 

if($subaction == "upload")

{

        if(!$image){ $image = $HTTP_POST_FILES['image']['tmp_name']; }

        if(!$image_name){ $image_name = $HTTP_POST_FILES['image']['name']; }

        $image_name = str_replace(" ", "_", $image_name);

 

        $img_name_arr = explode(".",$image_name);

    $type    = end($img_name_arr);

 

    if($image_name == ""){ $img_result = "<br><font color=red>Ingen filer er spesifisert for opplastning!!!</font>"; }

    elseif(file_exists($config_path_image_upload."/".$image_name)){ $img_result = "<br><font color=red>bildet er allerede lastet opp!!!</font>";}

    elseif( !(in_array($type, $allowed_extensions) or in_array(strtolower($type), $allowed_extensions)) ){

        $img_result = "<br><font color=red>Denne typen filer kan ikke lastes opp!!!</font>";

        }

    else

    {

      @copy($image, $config_path_image_upload."/".$image_name) or $img_result = "<font color=red>Kan ikke kopiere bilde til server</font><br />sjekk om file_uploads er lovlig i filen php.ini på din server";

  if(file_exists($config_path_image_upload."/".$image_name))

        {

    $img_result = "<br><font color=green>Bildet er lastet opp</font>";

  }//if file is uploaded succesfully

    }

}

 

    echo"<table border=0 cellpading=0 cellspacing=0  width=100%>

    <FORM action='$PHP_SELF?mod=images' METHOD='POST' ENCTYPE=\"multipart/form-data\">

    <input type=hidden name=subaction value=upload>

<input type=hidden name=area value='$area'>

    <input type=hidden name=action value='$action'>

    <td height=33>

    <b>Last opp bilde</b>

<table border=0 cellpading=0 cellspacing=0 class=\"panel\" cellpadding=8>

    <tr>

    <td height=25>

    <input type=file name=image size=23>   <input type=submit value='Last opp'>

    $img_result</tr>

    </form>

    </table>

    <tr>

<td height=11>

        <img height=20 border=0 src=\"skins/images/blank.gif\" width=1>

    </tr><tr>

<td height=14>

    <b>Opplastede bilder</b>

    </tr>

    <tr>

<td height=1>

  <table width=100% height=100% cellspacing=0 cellpadding=0>";

 

$img_dir = opendir($config_path_image_upload);

 

$i = 0;

    while ($file = readdir($img_dir))

{

 

  if ($file != ".." and $file != "." and is_file($config_path_image_upload."/".$file))

    {

            $i++;

            $this_size =  filesize($config_path_image_upload."/".$file);

        $total_size += $this_size;

            $img_info = getimagesize($config_path_image_upload."/".$file);

            if( $i%2 != 0 ){ $bg = "bgcolor=#F7F6F4"; }

      else{ $bg = ""; }

 

            if($action == "quick")

            {

                $my_area = str_replace("_", " ", $area);

                echo"

                <tr $bg><td height=16>

       

      <td height=16 width=57%>

                <a title=\"Legg bilde i til $my_area\" href=\"javascript:insertimage('<img style="border: none;" alt="" src="$config_http_script_dir/data/upimages/$file" />')\">$file</a>

 

                <td height=16 align=right>

      $img_info[0]x$img_info[1]

 

      <td height=16 align=right>

           ". formatsize($this_size) ."

      </tr>";

            }

            else

            {

            echo"<tr $bg><td height=16>

       

      <td height=16 width=63% >

      <a target=_blank href=\"". $config_path_image_upload ."/$file\">$file</a>

 

                <td height=16 align=right>

      $img_info[0]x$img_info[1]

 

      <td height=16 align=right>

           ". formatsize($this_size) ."

          <td width=70 height=16 align=right>

           <a href=\"$PHP_SELF?mod=images&action=doimagedelete&image=$file\">[slett]</a>  

      </tr>";

            }

    }

}

 

    if($i > 0){

    echo'<tr heigh=1>

  <td  width=14>

   

  <td >

  <br /><b>Total størrelse</b>

    <td> 

    <td align=right>

  <br /><b>'. formatsize($total_size) .'</b>

  </tr>';

}

    echo'</table></table>';

    if($action != "quick"){ echofooter(); }

}

// ********************************************************************************

// Delete Image

// ********************************************************************************

elseif($action == "doimagedelete")

{

if(!file_exists($config_path_image_upload."/".$image) or !$image){ msg("error","Feil!!!","Kan ikke slette bilde", "$PHP_SELF?mod=images"); }

unlink($config_path_image_upload."/".$image) or msg("error","Feil!!!","Kan ikke slette bilde", "$PHP_SELF?mod=images");

msg("info","Bildet er slettet","Bildet er slettet.", "$PHP_SELF?mod=images");

}

 

?>

Lenke til kommentar
Videoannonse
Annonse
En titt på www.php.net/getimagesize tror jeg skal hjelpe deg litt på vei.

hva skal jeg begynne med da, jeg der at det står en masse eksempler på script der.

 

Skal jeg legge inn et hidden field i formen som peker til scriptet....? eller...?

Lenke til kommentar

Med getimagesize så kan du sjekke hvor stort bilde er ikke sant?

Derfor kjøre en if-else spørring for å finne ut størrelsene, og deretter bruke imagecopyresized, til å forminske bildene.

 

Har ett script på lager som resizer bilder, men det sjekker ikke om bildene er mindre enn det dem blir resizet til, har ikke giddi å lage :p

Her er koden for å resize bilder:

	$path = "/mappen/bildene/skal/ligge/i/";
 	$file_name = $_FILES['userfile']['name'];
           $fil=$path.$file_name;
 	$target=80;
 	$size = getimagesize("$fil");
   if ($size[0] > $size[1]) {
   	$percentage = ($target / $size[0]);
   } else {
   	$percentage = ($target / $size[1]);
   }
 	$width = round($size[0] * $percentage);
 	$height = round($size[1] * $percentage);
   $abc = imagecreatefromjpeg($fil);
   $thumb=$path."thumb".$file_name;
   $def = imagecreatetruecolor($width, $height);
   imagecopyresized($def, $abc, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
   imagejpeg($def, $thumb, 100);

Dette legger du inn i scriptet som skriver nyhetene.

 

Hehe, begynner å bli farlig lei alle cutenews spørsmål nå :p

Kanskje jeg skulle lagde übernyhetessystem basert på flat files selv :p

 

edit: orker liksom ikke mate deg med såpass mye forskjellig, så jeg gir deg heller litt du kan se på jeg, som gjør det du (omtrent) vil den skal gjøre :)

 

edit:2 du ser kanskje at det står userfile inni scriptet?

Det er ihvertfall navnet på <input type=file name=userfile />, så ikke du misforstår hele greia.

Endret av LoS
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...