2013-01-03 1 views
0

Im은 PHP GD imagepolygon()을 사용하여 일부 다각형을 그립니다. 문제는 내가 눈에 띄는 pizels 많이있어, 그들을 매끄럽게 만드는 방법이 있습니까?PHP GD, imagepolygon(), 선을 부드럽게 만드는 방법은 무엇입니까?

The included image shows the problem, on all the edges i have quite heavy pixelating. 

enter image description here

[편집]

I have tried to use imageantialias() but i dont get it as good as im aiming for. 
I think that i will have to take a look at vector graphics, anyway, here is the image with anti-aliasing if anyone is interested 

enter image description here

답변

3

당신의 GD 이미지 자원이 트루 컬러 하나이며 알파 성분 (투명도)를 사용하지 않는 경우를 안티 앨리어싱을 사용하려면 imageantialias()으로 전화하십시오.

+0

결과가 좋지 않기 때문에 벡터 그래픽으로 처리 하겠지만 질문에 대한 정답입니다. – Sultanen

1

라인 드로잉에서 픽셀 화를 피하는 가장 좋은 방법은 픽셀 기반 그래픽이 아닌 벡터 그래픽을 사용하는 것입니다.

본인은이 모든 내용이 귀하에게 완전하게 재 작성된다는 것을 인정하지만, 문제를 완전히 해결할 것이며 장기적으로 더 많은 유연성을 제공 할 것입니다.

이 경로를 선택하는 경우 Raphael과 같은 자바 스크립트 라이브러리를 조사하는 것이 좋습니다. PHP 코드에서 실제 그래픽이 아닌 좌표 데이터를 출력 한 다음 Ajax를 사용하여 해당 JavaScript 코드를 자바 스크립트 코드로로드하고 Raphael을 사용하여 이미지를 그립니다.

나는 귀하의 질문에 대한 직접적인 대답이 아니라는 것을 알고 있지만 생각을위한 음식을 제공하기를 바랍니다. (나는 당신에게 직접적이고 좋은 답변이기 때문에 +1에 안티 알리아싱 응답을했습니다.)

+0

답변 해 주셔서 감사합니다! RaphaelJs에서 폴리곤 옵션을 찾는 것 같지 않니? – Sultanen

+0

Raphael에서는 ['path'] (http://raphaeljs.com/reference.html#Paper.path)를 사용하여 다각형을 만듭니다. 이렇게하면 일련의 점에서 선이 만들어집니다. 점 문자열의 끝에서'Z' 옵션을 사용하여 닫힌 다각형으로 정의하십시오. 'path'는 경로 객체를 반환하는데,'fill'과 같은 속성을 설정하여 수정할 수 있습니다. – SDC

+0

감사합니다! 나는 그것을 줄 것이다! – Sultanen

관련 문제