динамическая миниатюра с php - PullRequest
0 голосов
/ 12 июля 2011

Я хочу динамически генерировать миниатюры, и я нашел в одном из сообщений здесь рекомендацию, в которой используется класс SimpleImage , это такое использование:

header('Content-Type: image/jpeg');
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(150);
$image->output();

и метод вывода следующий:

function output($image_type=IMAGETYPE_JPEG) {

    if( $image_type == IMAGETYPE_JPEG ) {
       imagejpeg($this->image);

    } elseif( $image_type == IMAGETYPE_GIF ) {
       imagegif($this->image);

    } elseif( $image_type == IMAGETYPE_PNG ) {
       imagepng($this->image);

    }
}

это прекрасно работает с выводом изображений, потому что я получил что-то вроде двоичного кода на стороне клиента. но мне нужен слайдер с миниатюрами, поэтому мне нужно, чтобы все изображения были в

    , я пробовал это с помощью ajax:

    обновлен

    function thumb($files){
        echo '<ul>';
        foreach($files as $file){
            $thumb = new Thumbnail();
            $thumb->load($file->getFilePath());
            $thumb->resizeToWidth(80);
            echo '<li>'.$thumb->output().'</li>';
        };
        echo '</ul>';
    }
    

    но это, похоже, не работает. как я могу получить что-то вроде этого, чтобы я мог сделать галерею слайдера.

    <ul>
      <li><img src="path here"></li>
      <li><img src="path here"></li>
    </ul>
    

    1 Ответ

    0 голосов
    / 12 июля 2011

    Вы путаете две вещи: HTML-макет изображений и масштабирование изображений. Вы должны хранить свой масштабирующий код, который прекрасно работает, в отдельном php-файле, скажем, scale.php, например:

    <?php
        header('Content-Type: image/jpeg');
        include('SimpleImage.php');
        $image = new SimpleImage();
        $image->load($_GET['image']);
        $image->resizeToWidth(150);
        $image->output();
    ?>
    

    И в вашем основном php у вас будет такой код:

    <?php
        echo '<ul>';
        foreach($files as $file){
            echo '<li><img src="scale.php?image=' . $file . '"/></li>';
        }
        echo '</ul>';
    ?>
    
    ...