Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгом «работа с изображениями»



dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Intervention Image — библиотека с простым API для работы с изображениям.

Что библиотека умеет:

  1. изменение размера
  2. обрезка
  3. добавление прозрачности
  4. добавление блюра
  5. кеширование изображений
  6. и многое другое

Вы можете использовать Intervention Image двумя способами:

// open an image file
$img = Image::make('public/foo.jpg');

// now you are able to resize the instance
$img->resize(320, 240);

// and insert a watermark for example
$img->insert('public/watermark.png');

// finally we save the image as a new file
$img->save('public/bar.jpg');

Либо, через цепочку вызовов:

$img = Image::make('public/foo.jpg')
    ->resize(320, 240)
    ->insert('public/watermark.png')
    ->save('public/bar.jpg');

Помимо статического вызова, можно создать объект, и работать с ним:

// include composer autoload
require 'vendor/autoload.php';

// import the Intervention Image Manager Class
use Intervention\Image\ImageManager;

// create an image manager instance with favored driver
$manager = new ImageManager(array('driver' => 'imagick'));

// to finally create image instances
$image = $manager->make('public/foo.jpg')->resize(300, 200);

Для разработчиков Laravel, всё работает из коробки.

Ссылки
Репозиторий на Github
Документация

Maxim Kuptsov
  • Репутация: 23
  • Сниппеты: 1
  • Ревизии: 1

Один extensions проверять мало, по хорошему еще нужен MIME type

public function rules()
{
    return [
        ['avatar', 'image', 'extensions' => 'png, jpg, gif',
			'mimeTypes'=>'image/jpeg, image/png, image/gif',
			'minWidth' => 200, 'minHeight' => 200
		]
    ];
}
dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Всё больше меня радует Yii2, столько вещей уже продумано за нас. Возможно, вы уже слышали об этом, а возможно, и нет. В Yii2 есть различные валидаторы, которые очень сильно сэкономят вам время. Например, офф. документация по валидаторам.

Пример, работы валидатора для изображений:

e3ba73ff0ee0fa16ab04b21b6c9a3a56.gif

Указываем имя поля, типа валидатора и ваши правила в модели:

public function rules()
{
    return [['avatar', 'image', 'extensions' => 'png, jpg, gif','minWidth' => 200, 'minHeight' => 200]];
}
Иван Бармашов
  • Репутация: 71
  • Сниппеты: 7
  • Ревизии: 0

Если у вас много битых картинок, вы можете их либо скрыть, либо заменить в них урл:

// Прячем битую картинку
$("img").error(function(){
        $(this).hide();
});

// Заменяем урл у битой картинки
$('img').error(function(){
        $(this).attr('src', 'img-broken.png');
});
Иван Бармашов
  • Репутация: 71
  • Сниппеты: 7
  • Ревизии: 0

Сделать это можно с помощью библиотеки html2canvas:

$(document).ready(function() {
	// Скриншот элемента
    html2canvas($('#items'), {
        onrendered: function(canvas) {
            $('body').append(canvas);
        }
    });

    // Скриншот страницы
    html2canvas($('body'), {
        onrendered: function(canvas) {
            $('body').append(canvas);
        }
    });
});