imagesetinterpolation

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

imagesetinterpolation设置插值方法

描述

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

设置插值方法,设置插值方法会影响 GD 中各种函数的渲染,例如 imagerotate() 函数。

参数

image

一个 GdImage 对象,由图像创建函数之一返回,例如 imagecreatetruecolor()

method

插值方法,可以是以下之一

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.0.0 image 现在需要一个 GdImage 实例;以前,需要一个有效的 gd 资源

示例

示例 #1 imagesetinterpolation() 示例

<?php
// 加载图像
$im = imagecreate(500, 500);

// 默认插值是 IMG_BILINEAR_FIXED,切换
// 使用 'Mitchell' 滤波器:
imagesetinterpolation($im, IMG_MITCHELL);

// 继续使用 $im ...
?>

注释

更改插值方法会影响以下函数在渲染时的行为

参见

添加注释

用户贡献的注释 1 注释

shaun at slickdesign dot com dot au
6 年前
设置插值不会贯穿到 imageaffine() 或 imagerotate() 创建的任何图像。它默认设置为 IMG_BILINEAR_FIXED,需要根据需要在每个生成的图像上设置。

<?php
imagesetinterpolation
( $image, IMG_NEAREST_NEIGHBOUR );

// 使用 IMG_NEAREST_NEIGHBOUR 旋转
$rotated = imagerotate( $image, 45, $transparent );

// 使用 IMG_BILINEAR_FIXED 旋转
$rotated_again = imagerotate( $rotated, 45, $transparent );
?>

将插值设置为 IMG_NEAREST_NEIGHBOUR 可以帮助在以 90 度增量旋转图像时保留细节并防止采样问题,包括顺时针旋转。

<?php
// 旋转后的图像可能出现模糊,并且角度略微偏斜。
$rotated = imagerotate( $image, -360, $transparent );

// 与起始图像类似,但仍可能显示背景或角度略微偏斜。
imagesetinterpolation( $image, IMG_NEAREST_NEIGHBOUR );
$rotated = imagerotate( $image, -360, $transparent );
?>
To Top