Avatar billede gider_ikke_mere Nybegynder
12. januar 2006 - 23:34 Der er 4 kommentarer og
1 løsning

Image resize med Gdlib

Jeg skal have lavet thumbs af billeder jeg uploader. Alle kodeeksempler jeg finder viser et resized thumb, men filen der skabes bliver ikke resized. Jeg er overhovedet ikke interesseret i at få vist mit thumb ved upload.

Et af de eksempler jeg har prøvet:

<?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 = imagecreate($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

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

// Output
imagejpeg($thumb);
?>
Avatar billede gider_ikke_mere Nybegynder
12. januar 2006 - 23:35 #1
eller denne:

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

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

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>
Avatar billede gider_ikke_mere Nybegynder
13. januar 2006 - 00:16 #2
Ok, fandt en løsning.
Avatar billede rednex Nybegynder
13. januar 2006 - 21:07 #3
Så plejer det at være god skik at skrive løsningen her så andre kan få glæde af den, og lukke spørgsmålet :o)
Avatar billede gider_ikke_mere Nybegynder
13. januar 2006 - 23:11 #4
Jeg ved det. Derfor har jeg ikke lukket endnu. Jeg skal dog lige have finpudset det først.
Avatar billede gider_ikke_mere Nybegynder
16. august 2006 - 10:48 #5
Her er koden. Obs ** er ting I ikke må se!
<?php
session_start();
include("../**");
require("**");
echo $_COOKIE["**"] ;
?>
<body background="../pics/main/backgrnd3.jpg" text="#000000">
<h1>
  <input type="hidden" name="hiddenField" value="<?php echo $_COOKIE["**"] ; ?>">

  </h1>
<META HTTP-EQUIV="REFRESH" CONTENT="8; URL=retdata.php?familie=<?php echo $familie; ?>&person=<?php echo $person ?>">
<?php
/** Hvor skal filerne uploades til?
/* Husk, at webserveren skal kunne skrive til dette bibliotek */
$konfiguration["upload_bibliotek"] = "../pics/temp";
$konfiguration["persona_bibliotek"] = "../pics/familie/persona";

/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "400";

$allow_files = array("jpg", "png"); 
$ext = pathinfo($_FILES['upfil']['name']);

$ext_lower = strtolower($ext["extension"]);

if(in_array($ext_lower, $allow_files)) {

if($_FILES["upfil"]["size"] > 0) {

  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
  $lille = $konfiguration["upload_bibliotek"] . "/" . "thumb" . $_FILES["upfil"]["name"];
  $lille2 = $konfiguration["upload_bibliotek"] . "/" . "thumb2" . $_FILES["upfil"]["name"];
  $persona = $konfiguration["persona_bibliotek"] . "/" . $person . ".jpg";//$_FILES["upfil"]["name"];


  $fil_stoerrelse = filesize($fra)/1024;
  //echo $fil_stoerrelse;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun filer mindre end " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb<br>Se under hjælp for at se hvordan du reducerer dine billeder i størrelse.");
  }

    $img = $fra;
    //echo $ext["extension"];
    switch($ext_lower) {
    case 'jpg' : $src_img = imagecreatefromjpeg($img);
    break;
    case 'png' : $src_img = imagecreatefrompng($img);
    break;
    }
   

list($width, $height) = getimagesize($img);

$new_h = round($height * (250 / $height ));
$new_w = round($width * (250 / $height ));
  if ( $width > 1200 OR $height > 1200 ) {
      die("Desv&aelig;rre - filen er for stor. Højde eller bredde må ikke overskride 1200 pixel!<br>Se under hjælp for at se hvordan du reducerer dine billeder i størrelse.");
      }

$dst_img = imagecreatetruecolor($new_w,$new_h);
   
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img));

imagejpeg($dst_img, $lille);
//unlink($til);
//$_FILES
//move_uploaded_file($lille, $lille2);
rename($lille, $persona);
$hiddenfield = $_POST['hidden_field'];
echo "<h1>Billedet er rettet</h1>";

$sql = "UPDATE `users` SET `**` = now() WHERE `userId` = '$person' LIMIT 1 ";
    aabn_forbindelse_og_vaelgdb();
    sql_spoerg($sql);
    luk_forbindelse();
   
}} else {echo "<h1>Fejl - forkert filtype. Prøv igen</h1>"; }?>
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