imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagesetinterpolation β€” УстанавливаСт ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрполяции

ОписаниС

function imagesetinterpolation(GdImage $image, int $method = IMG_BILINEAR_FIXED): bool

УстанавливаСт ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрполяции, установка ΠΌΠ΅Ρ‚ΠΎΠ΄Π° интСрполяции влияСт Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² GD, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ функция imagerotate().

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

image
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ GdImage, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½ΡƒΠ»Π° функция imagecreatetruecolor() ΠΈΠ»ΠΈ другая функция Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
method

ΠœΠ΅Ρ‚ΠΎΠ΄ интСрполяции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…:

  • 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 ...
?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

ИзмСнСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° интСрполяции влияСт Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ:

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • imagegetinterpolation() - ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ интСрполяции
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
-1
shaun at slickdesign dot com dot au ΒΆ
8 years ago
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 );
?>