如何解决旋转实体对象在目的地内产生空白点
我使用标准公式旋转带有枢轴点的实心(填充)矩形/对象。 图像是一个开/关字节数组。
// loop through product attributes
foreach( WC()->cart->get_cart() as $item ) {
if( ! empty($item['variation']) ) {
// loop through product attributes
foreach($item['variation'] as $attribute => $term_name ) {
$taxonomy = str_replace('attribute_','',$attribute);
$attribute_name = wc_attribute_label($taxonomy);
$term_name = get_term_by( 'slug,$term_name,$taxonomy)->name;
}
}
}
图像旋转正确。但是,我在旋转的矩形/对象内得到了空白点(规则图案)。 我认为这些未填充的点是因为由于四舍五入/精度,等式不会在目的地生成 1:1 的地图。
是否有克服此限制的建议?
谢谢
解决方法
为了避免旋转后图像中出现空洞,您必须遍历目标像素(而不是源像素)。这(使用最近邻)适用于具有以下特征的图像:
source resolution <= destination resolution
在收缩的情况下:
source resolution > destination resolution
可能会出现锯齿(如果动画会通过旋转来强调)。有一些方法可以处理它们:
使用双线性过滤最多可以放大 1/2 倍
使用双三次过滤最多可以放大 1/4 倍
对于更高的缩小,常用的方法是使用Mip-maps(使用每 4 个像素的平均值将图像缩小 2 倍,直到分辨率接近目标)。
所有 3 种方法都将提供抗锯齿(混合不完全适合像素的边缘),因此如果您在大 LED 上观看并且能够调节它们的强度(不仅仅是 BW,而是灰度或颜色),那么它们将提供更好的图像质量(更好地被人类感知)
相关质量保证:
- Rotating a square TBitmap on its center ... 与最近邻旋转
- Inversing an interpolation of rotation ... 双线性过滤旋转
- OpenCV Birdseye view without loss of data ... 双三次插值示例
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。