(PHP 5 >= 5.5.0, PHP 7, PHP 8)
imagesetinterpolation — Устанавливает метод интерполяции
Устанавливает метод интерполяции, установка метода интерполяции влияет на отображение различных функций в GD, таких как функция imagerotate() .
imagemethodМетод интерполяции, который может быть одним из следующих:
IMG_BELL : Фильтр Белла.
IMG_BESSEL : Фильтр Бесселя.
IMG_BICUBIC : Бикубическая интерполяция.
IMG_BICUBIC_FIXED : Фиксированная точка реализации бикубической интерполяции.
IMG_BILINEAR_FIXED : Реализация билинейной интерполяции с фиксированной запятой (по умолчанию (также при создании изображения)).
IMG_BLACKMAN : Оконная функция Блэкмана.
IMG_BOX : Фильтр Коробка размытия.
IMG_BSPLINE : Сплайн-интерполяция.
IMG_CATMULLROM : Кубическая эрмитовая сплайн-интерполяция.
IMG_GAUSSIAN : Гауссова функция.
IMG_GENERALIZED_CUBIC : Обобщённая кубическая сплайн-фрактальная интерполяция.
IMG_HERMITE : Интерполяция Эрмита.
IMG_HAMMING : Фильтр Хэмминга.
IMG_HANNING : Фильтр Хеннинга.
IMG_MITCHELL : Фильтр Митчелла.
IMG_POWER : Степенная интерполяция.
IMG_QUADRATIC : Обратная квадратичная интерполяция.
IMG_SINC : Синк функция.
IMG_NEAREST_NEIGHBOUR : Интерполяция ближайшего соседа.
IMG_WEIGHTED4 : Весовой фильтр.
IMG_TRIANGLE : Треугольная интерполяция.
Функция возвращает true , если выполнилась успешно, или false , если возникла ошибка.
| Версия | Описание |
|---|---|
| 8.0.0 |
Параметр image теперь принимает объект GdImage ;
раньше параметр принимал корректный gd-ресурс (resource ).
|
Пример #1 Пример использования imagesetinterpolation()
<?php
// Загрузка изображения
$im = imagecreate(500, 500);
// По умолчанию интерполяция IMG_BILINEAR_FIXED, переключитесь
// на использование фильтра 'Митчелла':
imagesetinterpolation($im, IMG_MITCHELL);
// Continue to work with $im ...
?>Изменение метода интерполяции влияет на следующие функции при отображении:
Setting the interpolation does not carry through to any images created by imageaffine() or imagerotate(). It defaults to IMG_BILINEAR_FIXED and would need to be set on each generated image as required.
<?php
imagesetinterpolation( $image, IMG_NEAREST_NEIGHBOUR );
// Rotated using IMG_NEAREST_NEIGHBOUR
$rotated = imagerotate( $image, 45, $transparent );
// Rotated using IMG_BILINEAR_FIXED
$rotated_again = imagerotate( $rotated, 45, $transparent );
?>
Setting the interpolation to IMG_NEAREST_NEIGHBOUR can help to preserve details and prevent sampling issues when rotating an image at 90 degree increments, including when rotating clockwise.
<?php
// Rotated image can appear blurred and on a slight angle.
$rotated = imagerotate( $image, -360, $transparent );
// Similar to starting Image although it may still show a background or be on a slight angle.
imagesetinterpolation( $image, IMG_NEAREST_NEIGHBOUR );
$rotated = imagerotate( $image, -360, $transparent );
?>