м е н ю Мои WEB-фишки
У нас сейчас:
Начало
Мои сайты
Документация
Мой 3D-музей
Остров Ольхон
Погода у нас
Погода вокруг
Вид со спутника
К а р т ы
Скорость сети
Оплата услуг
Обмен WebMoney
Обратная связь
РФ НПК УВЗ
Нужные ссылки
Почта
Радио
A S C I I
Мои WEB-фишки

60 станций


Анализ сайта онлайн

Курс валют предоставлен сайтом old.kurs.com.ru

Интересные мне решения и подспорья

  • Генератор QR-кода
  • Web-цвета
  • Спецсимволы HTML
  • Генератор CSS-градиента
  • Измерялки окон
  • Колллекция иконок
  • ASCII-вьювер
  • Поиск favicon.ico
  • Конвертер IMG в base64
  • Обработка IMG в PHP
  • Обратная связь
  • Чек от Яндекса
  • Изменение размера изображения средствами PHP

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

    <?php
    class SimpleImage {
    
       var $image;
       var $image_type;
    
       function load($filename) {
          $image_info = getimagesize($filename);
          $this->image_type = $image_info[2];
          if( $this->image_type == IMAGETYPE_JPEG ) {
             $this->image = imagecreatefromjpeg($filename);
          } elseif( $this->image_type == IMAGETYPE_GIF ) {
             $this->image = imagecreatefromgif($filename);
          } elseif( $this->image_type == IMAGETYPE_PNG ) {
             $this->image = imagecreatefrompng($filename);
          }
       }
       function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
          if( $image_type == IMAGETYPE_JPEG ) {
             imagejpeg($this->image,$filename,$compression);
          } elseif( $image_type == IMAGETYPE_GIF ) {
             imagegif($this->image,$filename);
          } elseif( $image_type == IMAGETYPE_PNG ) {
             imagepng($this->image,$filename);
          }
          if( $permissions != null) {
             chmod($filename,$permissions);
          }
       }
       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);
          }
       }
       function getWidth() {
          return imagesx($this->image);
       }
       function getHeight() {
          return imagesy($this->image);
       }
       function resizeToHeight($height) {
          $ratio = $height / $this->getHeight();
          $width = $this->getWidth() * $ratio;
          $this->resize($width,$height);
       }
       function resizeToWidth($width) {
          $ratio = $width / $this->getWidth();
          $height = $this->getheight() * $ratio;
          $this->resize($width,$height);
       }
       function scale($scale) {
          $width = $this->getWidth() * $scale/100;
          $height = $this->getheight() * $scale/100;
          $this->resize($width,$height);
       }
       function resize($width,$height) {
          $new_image = imagecreatetruecolor($width, $height);
          imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
          $this->image = $new_image;
       }
    }
    ?>

    Скачать клаcc SimpleImage

    Теперь после того как мы поместили данный файл класса SimpleImage к себе на сервер посмотрим как его можно использовать.

    Следующий участок кода загрузит изображение image.jpg, изменить его ширину до 400 пикселей и высоту до 200 пикселей, а затем сохранит как image1.jpg.

    <?php
       include('classSimpleImage.php');
       $image = new SimpleImage();
       $image->load('image.jpg');
       $image->resize(400, 200);
       $image->save('image1.jpg');
    ?>

    Если необходимо изменить размеры изображения, основываясь только на ширине и при этом сохранить его пропорции, то сценарий сам выберет необходимую высоту. Для этого необходимо использовать метод resizeToWidth.

    <?php
       include('classSimpleImage.php');
       $image = new SimpleImage();
       $image->load('image.jpg');
       $image->resizeToWidth(250);
       $image->save('image1.jpg');
    ?>

    Возможно вы пожелаете изменить размер в процентном соотношении от его оригинала. Для этого существует метод scale, в качестве параметра которому передаются проценты.

    <?php
       include('classSimpleImage.php');
       $image = new SimpleImage();
       $image->load('image.jpg');
       $image->scale(50);
       $image->save('image1.jpg');
    ?>

    У данного класса есть еще один очень полезный метод output, который позволяет выводить изображения прямо в браузер, без предварительного сохранения. Данный метод может быть очень полезен при создании миниатюр.

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

    Автор данного класса Simon Jarvis, на своем сайте предлагает следующий пример для изменения размера изображения загруженного через форму.

    <?php
    if (isset($_POST['submit']) ) {
        include('classSimpleImage.php');
        $image = new SimpleImage();
        $image->load($_FILES['uploaded_image']['tmp_name']);
        $image->resizeToWidth(150);
        $image->output();
    }
    else {
      $form = '<form action="upload.php" method="post" enctype="multipart/form-data">
          <input type="file" name="uploaded_image" />
          <input type="submit" name="submit" value="Upload" />
        </form>';
      echo $form;
    }

    Вот такой очень маленький, но довольно функциональный получился класс SimpleImage, который очень пригодиться любому разработчику.

    Поиск:
    Google  В 
    © 2000-2018 AGr0
    доступность сайта
    Не надо усложнять.
    Keep it simple.
    Основной принцип разработчиков операционных систем Линукс и Юникс.
    Мы отвергаем королей, президентов и выборы. Мы верим в принципиальное согласие и работающие программы.
    We reject: kings, presidents and voting. We believe in: rough consensus and running code.
    Основной принцип разработчиков Интернета.
    Дай голодному удочку, а рыбу он поймает сам.
    Give to the hungry a fishing rod and the fish he to catch himself.
    Древняя мудрость.


    А не послать ли нам... гонца.
    За бутылочкой винца? 🍾
    До НОВОГО ГОДА осталось:
      ⏰
    
    Розжиг костров,
    выгул собак,
    отлов рыбы и отстрел дичи,
    выпас и выгон скота,
    а также выполз змей,
    выпорос свиней,
    выжереб коней и выкобыл лошадей,
    вымет икры,
    вылуп птиц из яиц,
    выкукол бабочек и выхухол выхухолей,
    выкур курей и выпрыг кенгурей,
    обгад ромашек,
    обдир ягод,
    выруб леса и вылом веток,
    выслеж зайца,
    мыслишь верно,
    выпуг тетерева,
    выдох вдоха,
    вынос тела,
    вы нас за нос - мы вас по уху,
    выхлоп газов,
    выкидыш мусора,
    выводок гусей,
    выродок людей,
    выплав стали,
    выплыв, сели,
    выпендр фраеров,
    выклянч денег,
    вымуштр солдат,
    выпор детей,
    выдрем в гамаках,
    вытрем губ и выпуч глаз,
    вычих насморка,
    вытреп и разбрех государственных тайн,
    выкус накоси и накось выкуси,
    окот, отел и атас,
    а главное, загляд и залаз в дупла с выкуром оттуда пчел и распробом меда
    С ПЕРВОГО АПРЕЛЯ ЗАПРЕЩЕH И ПРЕКРАЩЕH
    в связи с отказом их от высоса нектара после выщипа цветов и выдерга травы, а также в связи с полным вымером.