Header

  1. View current page

    댣노트

Profile_image?t=1222344116&type=small
0

안티얼라이싱

graphic

flash나 flex의 graphic을 이용해 선이나 도형 등을 그리면 무조건 안티얼라이싱이 되어 나온다.
하지만 그래픽에디터에서 모든것이 무조건 안티얼라이싱 되어져 그려진다는 것은 말이 안되는 일이다.

 

해결책

이를 해결하기 위한 방법은 두가지가 있다.

  1. threshold함수를 이용하여 그리려는 색 이외의 색을 모두 지워버리는 방법이다.
    하지만 이 방법을 쓸 경우 원래 그리려던 모양이 나오지 않을 수 있다는 단점이 있다. 선굵기가 1이나 2일 경우 중간에 끊김 현상까지 발생할정도로 문제는 더 심각해진다.
  2. 두번째는 직접 그리는 방법이다.
    getPixel과 setPixel 등을 이용하여 직접 그리는 함수들, 또하나의 graphics를 만드는것이다.
    이경우 코딩은 정말 힘들어지겠지만 브레젠함 알고리즘(Bresenham Algorithm) 등을 이용하여 원하는 결과를 얻을 수 있다.

 

결정

그냥 단순히 threshold함수를 사용하기로 했다.
아래와 같이 사용했다.

  1. 레이어.threshold( 레이어, rect, new Point( 0, 0), ">", 0, 색);

매우 간단히 레이어에 그려진 선에서 0보다 큰 알파값을 갖는 모든 픽셀들(흐린곳까지)을 그리려는 선의 색과 알파값으로 변경하는 것이다. 이렇게 함으로써 선 끊김 현상은 피할 수 있었으나 굵기가 좀 더 굵어질 수 있다는 단점이 아직 남아있다.

 

이후

언젠가에는 1번 방법으로 대체하려고 한다. 하지만 그게 언제가 될지는 미지수... 관련 알고리즘 구현이 그렇게 어려운것은 아니지만 이미지에디터 구조도 많이 변경되는데다가 하드코딩이 따르는데 현재로써는 이런 시간적/정신적 여유가 발생할수가 없다. 다른 계획한 일들도 많고.. 대충 생각해봐도 몇년후에나 가능할지 싶다.

History

Last edited on 04/06/2008 22:42 by 댣군

Comments (0)

You must log in to leave a comment. Please sign in.