/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Funktion til at formindske jpg-filer
Fra : Kurt G


Dato : 06-08-11 09:28

Ved upload af billeder vil jeg gerne have, at de begrænses til en bestemt
bredde i pixel, f.eks. til kun at være et lille icon.
Jeg vil altså gerne have billederne skaleret!
Er der nogen af jer, der kender sådan en funktion?

Mvh Kurt



 
 
Bertel Lund Hansen (06-08-2011)
Kommentar
Fra : Bertel Lund Hansen


Dato : 06-08-11 09:55

Kurt G skrev:

> Ved upload af billeder vil jeg gerne have, at de begrænses til en bestemt
> bredde i pixel, f.eks. til kun at være et lille icon.
> Jeg vil altså gerne have billederne skaleret!
> Er der nogen af jer, der kender sådan en funktion?

http://bertel.lundhansen.dk/webdesign/show_phpcode.php?phpfile=pictureresize.php

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Birger Sørensen (06-08-2011)
Kommentar
Fra : Birger Sørensen


Dato : 06-08-11 19:35

Kurt G har bragt dette til verden:
> Ved upload af billeder vil jeg gerne have, at de begrænses til en bestemt
> bredde i pixel, f.eks. til kun at være et lille icon.
> Jeg vil altså gerne have billederne skaleret!
> Er der nogen af jer, der kender sådan en funktion?
>
> Mvh Kurt

get_thumb.php:
<?php
$im = (isset( $_GET[ 'im'])) ? (string)$_GET[ 'im'] : '';
$mx = (isset( $_GET[ 'mx'])) ? (integer)$_GET[ 'mx'] : 0;
if (($mx > 0) && ($im != '') && file_exists( $im)) {
   $cnv_err = '';
   if (( $ret = MakeThumb( $im, $mx)) && ( $cnv_err == '')) {
      header('Content-type: image/jpeg');
      header('Content-Disposition: inline');
      header('Content-Description: thumbnail');
      imagejpeg($ret);
      imagedestroy($ret);
      }
   else {
      echo 'Miniature kunne ikke fremskaffes'."\n".$cnv_err;
      }
   }
else {
   echo 'Parametre skal være billedet der ønskes som thumbnail og
dimension på største led!';
   }

function MakeThumb( $fn, $mx) {
   global $cnv_err;
   $ret = false;
   if ( $img_info = getimagesize( $fn)) {
      $i_w = $img_info[ 0];
      $i_h = $img_info[ 1];
      $sc = ($i_w > $i_h) ? $mx/$i_w : $mx/$i_h;
      $t_w = round( $i_w*$sc);
      $t_h = round( $i_h*$sc);
      if( $org_img = imagecreatefromjpeg( $fn)) {
         if ( $new_img = imagecreatetruecolor( $t_w, $t_h)) {
            if ( imagecopyresampled( $new_img, $org_img, 0, 0, 0, 0, $t_w,
$t_h, $i_w, $i_h)) {
               $ret = $new_img;
               }
            else {
               $cnv_err = 'Kan ikke skalere';
               }
            }
         else {
            $cnv_err = '"Kan ikke oprette kopi';
            }
         }
      else {
         $cnv_err = 'Kan ikke oprette original';
         }
      }
   else {
      $cnv_err = 'Kan ikke finde original';
      }
   return $ret;
   }


Skalerer jpg (bemærk, *kun* jpg), så den største dimension er $mx:

<img src="get_thump?im=mit_billede.jpg&amp;mx=150" alt="skaleret
original">

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Kurt G (07-08-2011)
Kommentar
Fra : Kurt G


Dato : 07-08-11 08:00

Tak for begge forslag, jeg vil se, om jeg kan finde ud af dem!

Mvh Kurt

"Birger Sørensen" <sdc@bbsorensen.com> skrev i en meddelelse
news:4e3d895e$0$309$14726298@news.sunsite.dk...
> Kurt G har bragt dette til verden:
>> Ved upload af billeder vil jeg gerne have, at de begrænses til en bestemt
>> bredde i pixel, f.eks. til kun at være et lille icon.
>> Jeg vil altså gerne have billederne skaleret!
>> Er der nogen af jer, der kender sådan en funktion?
>>
>> Mvh Kurt
>
> get_thumb.php:
> <?php
> $im = (isset( $_GET[ 'im'])) ? (string)$_GET[ 'im'] : '';
> $mx = (isset( $_GET[ 'mx'])) ? (integer)$_GET[ 'mx'] : 0;
> if (($mx > 0) && ($im != '') && file_exists( $im)) {
> $cnv_err = '';
> if (( $ret = MakeThumb( $im, $mx)) && ( $cnv_err == '')) {
> header('Content-type: image/jpeg');
> header('Content-Disposition: inline');
> header('Content-Description: thumbnail');
> imagejpeg($ret);
> imagedestroy($ret);
> }
> else {
> echo 'Miniature kunne ikke fremskaffes'."\n".$cnv_err;
> }
> }
> else {
> echo 'Parametre skal være billedet der ønskes som thumbnail og dimension
> på største led!';
> }
>
> function MakeThumb( $fn, $mx) {
> global $cnv_err;
> $ret = false;
> if ( $img_info = getimagesize( $fn)) {
> $i_w = $img_info[ 0];
> $i_h = $img_info[ 1];
> $sc = ($i_w > $i_h) ? $mx/$i_w : $mx/$i_h;
> $t_w = round( $i_w*$sc);
> $t_h = round( $i_h*$sc);
> if( $org_img = imagecreatefromjpeg( $fn)) {
> if ( $new_img = imagecreatetruecolor( $t_w, $t_h)) {
> if ( imagecopyresampled( $new_img, $org_img, 0, 0, 0, 0, $t_w, $t_h, $i_w,
> $i_h)) {
> $ret = $new_img;
> }
> else {
> $cnv_err = 'Kan ikke skalere';
> }
> }
> else {
> $cnv_err = '"Kan ikke oprette kopi';
> }
> }
> else {
> $cnv_err = 'Kan ikke oprette original';
> }
> }
> else {
> $cnv_err = 'Kan ikke finde original';
> }
> return $ret;
> }
>
>
> Skalerer jpg (bemærk, *kun* jpg), så den største dimension er $mx:
>
> <img src="get_thump?im=mit_billede.jpg&amp;mx=150" alt="skaleret
> original">
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
>



Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407840
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste