0

알파 값을 사용하는 버퍼의 imagecopyresampled 문제가 있습니다. 분명히 알고리즘은 필터링하기 전에 픽셀 알파 값을 미리 곱합니다. 결과적으로 검은 테두리가 객체에 나타납니다.PHP에서 미리 생성 된 알파 문제로 imagecopyresampled했습니다.

  • 는 RGB 부분에 완전히 흰색 인 이미지를 촬영하고는 (안티 앨리어싱!) 흰색 원 (하지 사각형으로, 원과 함께 할 것입니다!)에 있습니다

    단계 재현 알파 부분에 검은 색 배경이 표시됩니다 (알파 부분은 대부분 완전히 흰색이고 완전히 검은 색 픽셀을 가지며, 앤티 앨리어싱으로 인해 원 테두리에있는 일부 그라디언트 픽셀을 갖습니다. 즉, 입력 이미지가 미리 곱해지지 않음을 의미합니다. , 이미지의 RGB 부분이 완전히 흰색이므로). 완전히 흰색 이미지 내가 무엇을 얻을

    :

  • scaledown 반에 의해 이미지가 내가 기대했던 것과 완전히 흰색 이미지

을 통해 결과를 구성

  • 을 imagecopyresampled 사용 : 원의 외곽선에 회색 테두리가 있습니다.

    scaledown 알고리즘에서 미리 곱셈 된 알파 때문입니다 (알고리즘은 픽셀 알파 값에 rgb 값을 곱하여 새로운 rgb 값을 계산하므로 흰색 픽셀은 회색이됩니다)

    이것에 대한 workarround?

  • 답변

    0

    나는 PHP를 위해 이미지 magick을 시도하는 것이 좋습니다. 내 경험에

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

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

    PHP에서 영상에 관한 모든 번거 로움은 사라.

    +0

    방금 ​​시도했지만 imagick으로 알파 채널이 완전히 손실 된 것 같습니다. – Mat