设置插值不会贯穿到由 imageaffine() 或 imagerotate() 创建的任何图像。它默认为 IMG_BILINEAR_FIXED,并且需要根据需要在每个生成的图像上进行设置。
<?php
imagesetinterpolation( $image, IMG_NEAREST_NEIGHBOUR );
$rotated = imagerotate( $image, 45, $transparent );
$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 );
?>