设置插值不会贯穿到 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 );
?>