Avatar billede klgn Nybegynder
05. oktober 2005 - 20:42 Der er 12 kommentarer og
1 løsning

Vis uploadet billede i mindre størrelse automatisk

Findes der en php funktion, der ud fra f.eks. width egenskaben på et billede automatisk kan skalere højden på det pågældende billede ned, så billedet bliver vist i de rette dimensioner (blot i mindre størrelse).
Findes der ikke en funktion, der kan dette, kan man så kode sig ud af det?
Avatar billede jakobdo Ekspert
05. oktober 2005 - 20:46 #1
Du kan bruge denne funktion:

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;
}

Den er lavet af en her på eksperten (kan ikke huske navnet på ham/hende)
Avatar billede klgn Nybegynder
05. oktober 2005 - 20:54 #2
Såvidt jeg kan se, så skalerer det hele billedet om, men billedet er allere uploadet og skal ikke ændres mere. Jeg skal blot vide, om man ved blot an angive f.eks. en width så kan få skaleret højden ned tilsvarende.
Avatar billede jakobdo Ekspert
05. oktober 2005 - 21:03 #3
Når billedet er uploadet, hvad er det så du vil ændre?
Avatar billede klgn Nybegynder
05. oktober 2005 - 21:06 #4
Det er en del af et nyhedsscript. På forsiden af mit site, vil jeg have vist e mindre udgave af billedet, mens når man klikker på nyheden skal billedet vises i den størrelse, det oprindeligt er uploadet. Jeg er klar over, man kan uploade thumbnails mv, men kan det ikke gøres uden?
Avatar billede jakobdo Ekspert
05. oktober 2005 - 21:34 #5
Du kan jo resize on-the-fly!
Fandt lige denne kode på www.php.net/imagejpeg

<?php
// Use it this way: resize.php?pic=imageurl&width=width_in_pixels
// kokesh@kokeshnet.com 2004
  header("Content-type: image/jpeg");
  $im    = imagecreatefromjpeg($pic);
  $orange = imagecolorallocate($im, 220, 210, 60);
  $px    = (imagesx($im) - 7.5 * strlen($string)) / 2;
  $old_x=imageSX($im);
  $old_y=imageSY($im);
  $new_w=(int)($width);
  if (($new_w<=0) or ($new_w>$old_x)) {
    $new_w=$old_x;
  }
  $new_h=($old_x*($new_w/$old_x));
if ($old_x > $old_y) {
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}
if ($old_x < $old_y) {
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}
if ($old_x == $old_y) {
$thumb_w=$new_w;
$thumb_h=$new_h;
}
    $thumb=ImageCreateTrueColor($thumb_w,$thumb_h);
    imagecopyresized($thumb,$im,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
  imagejpeg($thumb,"",90);
  imagedestroy($thumb);
?>

Og du skal jo angive height eller width!
Avatar billede klgn Nybegynder
05. oktober 2005 - 21:45 #6
der skal ikke genereres flere billeder. Det nuværende billede skal ved hjælp af php automatisk resizes, men stadig bevare samme størrelse på serveren, således at det vises i sin oprindelige størrelse, når man klikker på nyheden. Det eneste, der skal ske er således et stykke kode, jeg forestiller mig getimagesize og derefter skal der så ske en automatisk skalering af billedet, uden at der oprettes thumpnails eller nye billeder eller andet (Jeg beklager, hvis det er svært forståeligt).
Jeg er klar over, jeg bare kan skrive <img src=billede.jpg width=x height=y> - men kan php ikke automatisk nedskalere billedet så jeg bare kan skrive <img src=billede.jpg width=>?php php_image_resizer_funktion_der_ogsaa_ændrer_hoejden(); ?>
Avatar billede jakobdo Ekspert
05. oktober 2005 - 21:47 #7
Læser du i det hele taget hvad jeg skriver?
Du bliver jo nød til at resize det!
Og gøre et on-the-fly er jo hvad du skal bruge!
Den laver et nyt billede, men ellers kan du jo ikke resize det!
Tror ikke helt du forstår hvad resize gør!
Avatar billede klgn Nybegynder
05. oktober 2005 - 21:56 #8
Ja ok, efter at have kigget nærmere på koden, tror jeg godt, jeg kan bruge den. Jeg tester den, og vender tilbage med mit syn på resultatet...
Beklager, er ikke videre frisk her til aften:(
Avatar billede jakobdo Ekspert
05. oktober 2005 - 21:59 #9
Det går nok, håber ikke jeg var for grov!
Men jeg er også træt, og nogle gange tænker man bare! (SÅ FAT DET DOG) :o)
Avatar billede klgn Nybegynder
06. oktober 2005 - 22:55 #10
Jeg kunne nu ikke få det script til at virke, men find en anden løsning - men du skal alligevel have point for din ihærdighed - smid et svar og der er points til dig...
Avatar billede jakobdo Ekspert
06. oktober 2005 - 23:27 #11
Et svar!
Hvilken løsning fandt du så?
Avatar billede klgn Nybegynder
07. oktober 2005 - 16:09 #12
Jeg valgte at generere en thumbnail samtidig med, jeg uploader billedet...
Avatar billede jakobdo Ekspert
08. oktober 2005 - 14:36 #13
Ok!
Og takker for point!
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