GD를 사용하여 PHP에서 일부 투명 이미지를 축소하려고하는데, 할 때마다 주위에 추가 된 이상한 검정색 테두리가 있습니다.PHP GD 검은 색 테두리를주는 투명 이미지 크기 조정
전에
코드
후
<?php
$image = imagecreatefromstring(file_get_contents('logo.png'));
$width = imagesx($image);
$height = imagesy($image);
$newWidth = $width - 1;
$newHeight = $height - 1;
$output = imagecreatetruecolor($newWidth, $newHeight);
imagecolortransparent($output, imagecolorallocatealpha($output, 0, 0, 0, 127));
imagealphablending($output, false);
imagesavealpha($output, true);
imagecopyresampled($output, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
header('Content-Type: image/png');
imagepng($output);
?>
내가의 코드를 변경하면 새로운 치수는 동일 할 것으로 보인다 이전 (제거 - 1
) 검은 색 테두리가 나타나지 않습니다. 크기를 조정하면 문제가 발생합니다.
누구에게 잘못된 생각이 있습니까?
편집 : 난 그냥 단지 imagecopyresampled
하지 imagecopyresized
으로 발생 깨달았다. 그러나 imagecopyresampled
은 시각적 효과가 훨씬 뛰어나며 가능하면 가능하도록하고 싶습니다.
앤티 앨리어싱이 매트 색상에 검정색을 사용하는 것처럼 보입니다. – Brad
@ 브래드 실제로 그렇습니다. 그러나 설명서 페이지에는 앤티 앨리어싱이 기본적으로 해제되어 있으며 사용하지 않는 GD 번들 버전 만 제공된다는 내용이 있습니다. 어쩌면 다른 함수가 그것을 일으키는 것일 수도 있지만, 내가 말할 수있는 한 다른 매개 변수는 보이지 않는다. –
나는 단지''imagecopyresampled'] (http://php.net/manual/en /function.imagecopyresampled.php)이 아니라 ['imagecopyresized'] (http://php.net/manual/en/function.imagecopyresized.php)를 참조하십시오. 그러나,'imagecopyresampled'는 시각적 효과가 훨씬 뛰어나며 가능하면 가능하게 만들고 싶습니다. –