gd 라이브러리의 imagefilledpolygon()
으로 인해 문제가 발생했습니다.PHP - 다각형 GD 라이브러리의 버그?
일부 이유로 내 라인 중 일부가 1px에서 끝나기 때문에 imagepixelset을 사용하여 디버그하기로 결정하여 내 모양 점의 색상을 빨간색으로 설정했습니다.
alt text http://www.degreeshowcase.com/other/1.gif 만약 당신이 그림의 일부 포인트 모양을 볼 수 있습니다 ... 일부는 외부 .... 그 매우 비논리적입니다.
사람이 해결책이 있습니까 (사진은 더 볼 수 있도록하기 위해 확장 된)?
업데이트 : 위의 모양에 대한
내 포인트였다 : 0,0 40,0 40,20 20,20 20,40 0,40
내가 요구하는 모양의 높이와 폭 생산 된 것은 20의 배수 여야합니다 .... 그러나 어떤 이유로 든 모양의 일부가 21 픽셀 높이 또는 너비로 끝납니다.
내가 원하는 모양을 얻는 데 필요한 점을 알아 내기 위해 스크립트를 만들었지 만 나는 왜 그런 식으로 일할 수 없으며 모든 모양을 수정하는 스크립트를 만들 수 없습니다.
<?php
// set up array of points for polygon
$values = array(0,0, 39,0, 39,20, 19,20, 19,39, 0,39);
//My original values were 0,0 40,0 40,20 20,20 20,40 0,40
//I do not understand why some values require minus 1 and others can remain as they were (a multiple of 20)
// create image
$image = imagecreatetruecolor(40, 40);
// allocate colors
$bg = imagecolorallocate($image, 200, 200, 200);
$blue = imagecolorallocate($image, 0, 0, 255);
// fill the background
imagefilledrectangle($image, 0, 0, 39, 39, $bg);
// draw a polygon
imagefilledpolygon($image, $values, 6, $blue);
// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
일부 코드가 없으면 어떤 일이 발생했는지 알지 못합니다. – Jacco
반올림 오류? –
정수에 20을 곱하여 포인트가 생성되는 오류를 반올림 할 수 없습니다.한 순간 나는 포인트를 제공 할 것이다 – Mark