phpbar.de logo

Mailinglisten-Archive

[php] R: [php] Skalieren/Verkleinern von JPGs mit PHP (2.Versuch)

[php] R: [php] Skalieren/Verkleinern von JPGs mit PHP (2.Versuch)

PPK Screen ppk_(at)_datacomm.ch
Sat, 27 Nov 1999 13:37:09 +0100


Sicher geht das verkleinern sowie Zoomen beispiel:
http://www.jazzascona.ch/hotel/asconazoomin.php3


solange Gif:
http://www.php.net/manual/function.imagecreatefromgif.php3
ist eben Gif um neu create zu machen.

<?php

Header(  "Content-type: image/gif");

$bigmap=ImageCreateFromGif( "asconabig.gif");   file://jpg geht eben nicht

$image_out=ImageCreate(300,300);

$factor=3.75;

$posx=floor($x*$factor-100);

$posy=floor($y*$factor-48);

$copia=ImageCopyResized($image_out, $bigmap, 0, 0, $posx, $posy, 300, 300,
300, 300);

ImageGif($image_out);

ImageDestroy($bigmap);

ImageDestroy($image_out);

?>


oder dieses Script gut studieren:

<?
     /*
     * The thumbnail function uses the pnmscale program from
     * the popular Netpbm image manipulation tools package
     * to create a thumbnail of the given image.  If a thumbnail
     * already exists for the image, the function simply returns.
     */
    cfunction thumbnail($filename) {
        global $theight;
         /* Define where to find the various external binaries we need
*/
        $djpeg =  "/usr/local/bin/djpeg";  /* decompresses a jpeg to ppm
*/
        $cjpeg =  "/usr/local/bin/cjpeg";  /* compreses a ppm to jpeg format
*/
        $pnmscale =  "/usr/local/netpbm/pnmscale";  /* scales a ppm image
*/
        $giftopnm =  "/usr/local/netpbm/giftopnm";  /* convert a gif to ppm
*/
        $ppmtogif =  "/usr/local/netpbm/ppmtogif";  /* convert a ppm to gif
*/
        $ppmquant =  "/usr/local/netpbm/ppmquant";  /* colour quantize a ppm
*/

        $tdir = dirname($filename). "/thumbnails";  /* thumbnail directory
*/
        if(!filetype($tdir)) {
            if(!_(at)_mkdir($tdir,0777)) {
                echo  "Unable to create $tdir dir - check
permissions<br>\n";
                return;
            }
        }
        $tfile = $tdir. "/".basename($filename);    /* thumbnail file
*/
        if(!filesize($tfile)) {
            if(ereg( "\.gif$",$filename)) {   /* Look for .gif extension
*/
                exec( "$giftopnm $filename | $pnmscale -height $theight ".
                      "| $ppmquant 256 | $ppmtogif -interlace > $tfile");
            } elseif(ereg( "\.jpe?g",$filename)) {  /* Look for .jpg or
.jpeg */
                exec( "$djpeg $filename | $pnmscale -height $theight | ".
                      "$cjpeg -outfile $tfile");
            } else {   /* not a GIF or JPG file */
                return( "");
            }
        }
        return($tfile);
    }

     /* If the album variable isn't set, show the album list */
    if(!$album) {
        $title =  "Photo Albums";
        $page =  "albums";
        include  "include/header.inc";

         /* Get a list of the available albums */
        $albums = mysql_query( "select filename,album,count(*) as
num_albums".
                               " from photos group by album");
        echo  "<table align=center>\n";

         /* Loop through each album */
        while($row=mysql_fetch_row($albums)) {
            $row[1] = stripslashes($row[1]);
            $thumb = thumbnail($row[0]);
            if(strlen($thumb)) {
                echo  "<tr><td><a
href=\"$PHP_SELF?album=".urlencode($row[1]);
                $size = getimagesize($thumb);
                echo  "\"><img src=\"$thumb\" border=0 $size[3]></a></td>";
                echo  " <td><font size=+1><b>".$row[1]. "</b></font><br>";
                echo  "$row[2] photos<br></td></tr>\n";
            }
        }
        echo  "</table>\n";
        mysql_free_result($albums);
    }
     /* Ok, an album was selected, show the thumbnails for this album */
    else {
        $title = stripslashes($album);
        $page =  "thumbnails";
        include  "include/header.inc";
        $pics = mysql_query( "select filename,text from photos where ".
                             "album='$album'");
        $album=stripslashes($album);
        echo  "<center>\n";
        while($row=mysql_fetch_row($pics)) {
            if($photo==$row[0]) {
                $desc=stripslashes($row[1]);
            }
            $thumb = thumbnail($row[0]);
            if(strlen($thumb)) {
                echo  "<a href=\"$PHP_SELF?album=".urlencode($album);
                $size = getimagesize($thumb);
                echo  "&photo=$row[0]\"><img src=$thumb border=0
$size[3]></a>\n";
            }
            flush();  /* Force web server to flush buffer */
        }
        echo  "</center>\n";

         /* If a picture was selected as well, show the picture */
        if($photo) {
            $size=getimagesize($photo);
            echo  "<center><img src=\"$photo\"
$size[3]><br>$desc</center>\n";
        }
        mysql_free_result($pics);
    }

    include  "include/footer.inc";
?>


webadmin Ticino webcamera www.ti-news.ch
www.ppk.grossalp.ch
=============================================





----- Original Message -----
From: Christiane Schmidt-Köster <C.Schmidt-Koester_(at)_gmx.net>
To: <php_(at)_solix.wiso.Uni-Koeln.DE>
Sent: Saturday, November 27, 1999 8:33 AM
Subject: [php] Skalieren/Verkleinern von JPGs mit PHP (2.Versuch)


> hallo liste,
>
> ich versuchs einfach nochmal:
>
> vor einiger zeit gab es hier mal einen thread, über das
> skalieren/verkleinern von upgeloadeten JPG's.
>
> björn hatte damals die idee mit einem php-systemcall auf netpbm bzw.
> imagemagick, was auch sicher funktionieren würde. aber leider klappts bei
> mir mit der installation der beiden programme (oder wenigstens einem)
nicht.
> vermutlich, weil diverse paketabhängigkeiten bestehen und diese pakete
nicht
> vorhanden sind. ist übrigens nicht mein eigener server und ich hatte
> versucht auf meinem webspace eines der pakete ans laufen zu bringen ;-(
>
> nun meine frage: hat jemand eine alternative idee zum verkleinern von
jpeg's
> über php?
>
> ist es korrekt, dass man mit PHP und den image-funktionen zumindest GIFs
> verkleinern kann?
>
> christiane
>
>
>
> --
> ** Durchgehend geöffnet: http://www.php-center.de **
> Die PHP-Liste: mailto:php_(at)_infosoc.uni-koeln.de
> http://infosoc.uni-koeln.de/mailman/listinfo/php



php::bar PHP Wiki   -   Listenarchive