Loading:

Książka Zend Framework 3. Poradnik Programisty.

Skalowanie obrazka w locie

Jest to kod znaleziony w internecie bardzo przydatny przy skalowaniu obrazków w "locie".

Tworzymy plik obraz.php i umieszczamy w nim poniższy kod



Napisz Artykuł

Listing

<?php
header ("Content-type: image/jpeg");
/*
JPEG / PNG Image Resizer
Parameters (passed via URL):

img = path / url of jpeg or png image file

percent = if this is defined, image is resized by it's
          value in percent (i.e. 50 to divide by 50 percent)

w = image width

h = image height

constrain = if this is parameter is passed and w and h are set
            to a size value then the size of the resulting image
            is constrained by whichever dimension is smaller

Requires the PHP GD Extension

Outputs the resulting image in JPEG Format

By: Michael John G. Lopez - www.sydel.net
Filename : imgsize.php
*/


$img = $_GET['img'];
$percent = $_GET['percent'];
$constrain = $_GET['constrain'];
$w = $_GET['w'];
$h = $_GET['h'];

// get image size of img
$x = @getimagesize($img);
// image width
$sw = $x[0];
// image height
$sh = $x[1];

if ($percent > 0) {
        // calculate resized height and width if percent is defined
        $percent = $percent * 0.01;
        $w = $sw * $percent;
        $h = $sh * $percent;
} else {
        if (isset ($w) AND !isset ($h)) {
                // autocompute height if only width is set
                $h = (100 / ($sw / $w)) * .01;
                $h = @round ($sh * $h);
        } elseif (isset ($h) AND !isset ($w)) {
                // autocompute width if only height is set
                $w = (100 / ($sh / $h)) * .01;
                $w = @round ($sw * $w);
        } elseif (isset ($h) AND isset ($w) AND isset ($constrain)) {
                // get the smaller resulting image dimension if both height
                // and width are set and $constrain is also set
                $hx = (100 / ($sw / $w)) * .01;
                $hx = @round ($sh * $hx);

                $wx = (100 / ($sh / $h)) * .01;
                $wx = @round ($sw * $wx);

                if ($hx < $h) {
                        $h = (100 / ($sw / $w)) * .01;
                        $h = @round ($sh * $h);
                } else {
                        $w = (100 / ($sh / $h)) * .01;
                        $w = @round ($sw * $w);
                }
        }
}

$im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
$im = @ImageCreateFromPNG ($img) or // or PNG Image
$im = @ImageCreateFromGIF ($img) or // or GIF Image
$im = false; // If image is not JPEG, PNG, or GIF

if (!$im) {
        // We get errors from PHP's ImageCreate functions...
        // So let's echo back the contents of the actual image.
        readfile ($img);
} else {
        // Create the resized image destination
        $thumb = @ImageCreateTrueColor ($w, $h);
        // Copy from image source, resize it, and paste to image destination
        @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh);
        // Output resized image
        @ImageJPEG ($thumb);
}
?>

Obrazek wyświetlamy za pomocą kodu:

<img src="obraz.php?w=120&img=obrazek.jpg">


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=6745

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: mdnm Ranga: Poziom 3 Punktów: 53
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors