2015-01-30 2 views
0

초기 연구의 일환으로 카이로를 사용하는 것이 적합한지를 확인하기 위해 주어진 시점에서 (x, y) 점을 얻을 수 있는지보고자합니다. 경로의 시작으로부터의 거리. 나는 카이로의 예와 API를 살펴 봤지만 가능하다고 제안 할만한 것을 찾지 못했습니다. 우리 자신의 베 지어 경로 구현을 처음부터 구축해야한다면 매우 어려울 것입니다.카이로와 경로를 따라 이미지 스탬프 찍기

안드로이드에는 PathMeasure이라는 클래스가 있습니다. 이렇게하면 경로의 시작부터 주어진 거리에 (x, y) 점을 가져올 수 있습니다. 이렇게하면 원하는 거리에서 우표를 쉽게 그릴 수 있으며 아래 그림과 같은 것을 만들 수 있습니다. enter image description here

누군가가 올바른 방향으로 나를 가리켜 주길 바랍니다.

+0

두 번째 예제에서 스탬프의 회전 및 배율도 지정하는 것처럼 보입니다. 이것도 요구 사항의 일부입니까? – Antonio

+0

당신이 이해할 수있는 것부터, 카이로와 자바 안드로이드 경로 개념이 일치합니까? http://cairographics.org/manual/cairo-Paths.html#cairo-Paths.description 및 http://developer.android.com/reference/android/graphics/Path.html 카이로 관련 문서는 그다지 명확하지 않습니다. 나 ... – Antonio

+0

안드로이드와 카이로 경로는 A ~ B에서 C까지 점을 유지하는 점에서 유사합니다. 안드로이드 에서처럼 카이로와 같이 보이지만, 경로를 그릴 때 계산은 내부적으로 픽셀을 그리기 위해 발생합니다 그 점들. 실제 코드 테스트를 통해 소스를 다운로드하고 다이빙을해야한다고 생각합니다./ – Jona

답변

0

"경로"의 의미를 이해할 수 없다면 this guide부터 시작하여 작업을 완료 할 수 있습니다. cr (이미지 위치, 회전, 눈금)을 복수 사용하고 image 인스턴스를 하나만 사용하십시오.

블렌딩 (예 : 알파 채널)을 사용해야 할 때부터 원래의 그레이 스케일 값과 비례/동일하게 알파 채널 (투명도)을 픽셀 단위로 설정하고, 모든 RGB 픽셀 값은 검정색 (0)입니다.

당신이 입력하는 이미지 (로드 할 파일)에 직접적으로 "회색 음영 이미지를 알파로 변환"하기 위해 Photoshop에서 몇 가지 결과를 발견했습니다. 일부는 김프로, 어떤 것이 있는지 모르겠습니다. 유효한.

그렇지 않으면 이미지 픽셀에 액세스하는 코드 내에서 직접해야합니다. 픽셀 값을 읽고 편집하려면 cairo_image_surface_get_data을 사용할 수 있습니다. 첫째로 당신은 (당신이 당신의 원본 이미지에서 형식 CAIRO_FORMAT_A8의 알파 채널 이미지를 생성 한 후, 이미지의 크기의 검은 색 사각형 그리기 cairo_mask를 사용할 수 cairo_image_surface_create 는 유사 형식 CAIRO_FORMAT_ARGB32

을 사용하여 대상 이미지를 만들어야합니다 다시, 픽셀 단위로 액세스하는 것은 cairo_image_surface_create_from_png의 한계를 감안할 때 유일한 방법입니다.

cairo_paint 대신 cairo_paint_with_alpha을 사용하면 알파 채널이 전체 이미지에 대해 일정하기 때문에 적합하지 않습니다.

+0

안녕하세요, 제 질문에 답변 해 주셔서 감사합니다. 그래서 당신이 제공 한 대답은 내가 결국 잠수 할 특별한 영역에 도움이됩니다. 그것이 두 번째 부분입니다. 그러나 카이로를 사용할지 여부를 결정할 때 주된 관심사는 주어진 거리에서 경로의 실제 픽셀 위치를 읽을 수 있는지 여부입니다. 업데이트 된 질문을 참조하십시오. – Jona