PHP의 GDlib을 사용하여 투명도로 PNG 크기 조정
PNG 파일을 처리할 때 이미지 투명성을 유지하는 것이 중요합니다. GDlib은 이미지 조작 기능을 제공하지만 투명도가 보존된 PNG 크기를 조정하는 것이 어려울 수 있습니다.
GD의 imagecopyresampled 기능을 사용할 때 직면하는 한 가지 문제는 원본 PNG의 투명한 영역이 단색으로 대체된다는 것입니다. Imagesavealpha를 true로 설정했는데도 이런 문제가 발생합니다.
이 문제를 해결하려면 알파 설정을 올바르게 지정하는 것이 중요합니다. PHP에서는 알파 설정이 소스 이미지가 아닌 대상 이미지에 적용됩니다. 대상 이미지의 알파 속성을 조정하여 투명도를 유지할 수 있습니다.
imagealphablending( $targetImage, false ); imagesavealpha( $targetImage, true );
imagealphablending(false)는 모든 블렌딩을 비활성화하고 이미지의 알파 채널을 존중합니다. Imagesavealpha(true)는 PNG의 알파 채널이 출력에 유지되도록 합니다.
다음은 이러한 조정 사항을 통합한 수정된 PHP 코드 조각입니다.
$uploadTempFile = $myField[ 'tmp_name' ] list( $uploadWidth, $uploadHeight, $uploadType ) = getimagesize( $uploadTempFile ); $srcImage = imagecreatefrompng( $uploadTempFile ); $targetImage = imagecreatetruecolor( 128, 128 ); imagealphablending( $targetImage, false ); imagesavealpha( $targetImage, true ); imagecopyresampled( $targetImage, $srcImage, 0, 0, 0, 0, 128, 128, $uploadWidth, $uploadHeight ); imagepng( $targetImage, 'out.png', 9 );
이 수정된 코드는 효과적으로 PNG 크기를 조정해야 합니다. 투명도를 유지하면서 이미지. 모든 경우에 완벽하다고 보장할 수는 없지만 확실한 출발점을 제공합니다.
위 내용은 PHP의 GDlib을 사용하여 투명하게 PNG 크기를 조정하고 알파 채널을 보존하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!