我对使用alpha值的缓冲区有imageCopySpled的问题。显然,算法Premliplipies在过滤之前的像素alpha值,这导致黑色边框arrount对象。

重现步骤:

  • 在RGB部分中拍摄完全白色的图像,具有(抗锯齿!!)白圆圈(使用圆圈,而不是一个方形!)在alpha部分的黑色背景上(所以Alpha Part将主要是完全是白色和完全黑色的像素,以及由于抗锯齿引起的圆的边界上的一些渐变像素 - 这意味着输入图像不会预升降 - 它是直/未数据的,因为图像的RGB部分是完全白)。

    使用ImageCopyreSampled 缩小了一半的图像

  • 在完全白色的图像上撰写结果

    我期待的是什么: 完全白象

    我得到的是什么: 浅灰色的边框争论圈子的轮廓

    我很确定这是由于ScaleDown算法中的预热alpha(算法将像素alpha值乘以它的RGB值来计算新的RGB值 - 因此是白色像素将变为灰色)

    有谁对此是一个工作的工作?

有帮助吗?

解决方案

我建议尝试掌握图像mag。

http://www.php.net/manual/en/imagick.resizeImage.php

在我的体验中,所有关于PHP成像的麻烦都会消失。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top