나의 즐겨찾기 | 블로그홈 | 바로가기 바로가기 | 로그인
새로 시작하며
블로그  |  사진갤러리  |  동영상갤러리 방명록  |   즐겨찾기 추가
스페인에서살꺼야 (yunneo2000)
프로필      쪽지
 인기도 :
 이 블로그 점수주기
전체 글보기(465)
실버라이트(자료 스크랩)
콘텐츠산업
Flex 또는 Svg(자료 스크랩)
와이브로(자료 스크랩)
IPTV와 콘텐츠(자료스크랩)
왜 스페인에서 살고싶냐고요?
문화마케팅
중국인터넷만화에 진출하기 위해
인터넷만화솔루션의 역사
문화예술행정
5년뒤 문화예술 대선공약 준비
미술시장에 대한 고찰
오픈 다이어리 새 글이 있습니다.
오늘 전체
방문자 7 62129
구독자 0 166
답글 0 384
참조글 0 1
HanRSS 로 구독하기Fish 로 구독하기
다녀간 블로거 더보기
- bable74
- py4904
- 클릭하면현금줄께
- 가계부n고객관리
- 오대출장부페
개설일 : 2003/09/04
 

Flex 또는 Svg(자료 스크랩)
SVG로 만드는 웹 그래픽
2008/02/03 오후 11:16 | Flex 또는 Svg(자료 스크랩)


등록일: 2002년 11월 20일조회수: 2,586 프린트 전체기사목록 「한빛 네트워크 기사 공모전」 입선작: 한동훈

SVG란?

SVG(Scalable Vector Graphics)는 XML에 기반한 웹 상의 그래픽을 기술하는 마크업 언어다. 1998년 W3C는 PGML(Precision Graphics Markup Language)와 VML(Vector Markup Language)라는 새로운 그래픽 포맷을 두 가지를 소개했었다. 이때 VML은 CSS를 사용하도록 되어 있었는데, 후일에 이 두 가지 언어가 하나로 합쳐져 새로운 언어를 탄생시켰다. 이것이 바로 SVG로 SVG가 탄생하게 된 목적은 동적이고 자유롭게 변환할 수 있으며, 사용자와 상호 작용할 수 있는 그래픽을 플랫폼 독립적으로 표현할 수 있도록 하는데 있다.

SVG는 현재 20여개 이상의 회원들로 구성되어 있으며, 이들 회원사들 중에는 썬(Sun), IBM, 어도비(Adobe), 매크로미디어(Macromedia), 휴렛패커드(HP), 마이크로소프트(Microsoft), AOL 등이 있다. 특히 어도비는 SVG용 플러그 인을 제공하는 등 SVG에 많은 투자를 하고 있다.

SVG의 버전은 현재 1.0, 1.1, 2.0이 있지만 1.1까지 작업이 마무리 되었으며 2.0은 기존의 문제점을 개선, 보완하기 위해 작업중이다. 또한 모빌 기기에서의 그래픽 표현을 위한 SVG Mobile이 작업중이며, XHTML + MathML + SVG를 위한 프로파일도 준비되어 있다. 관심있는 분들은 W3C를 방문하기 바란다.

SVG의 이점

SVG가 제공하는 이점은 앞에서도 얘기했지만, 여기서는 몇 가지 특징들을 정리해보겠다.


SVG Essentials


변환이 자유로운 벡터 그래픽: 독자들이 흔히 알고 있는 플래시와 마찬가지로 SVG 역시 벡터 기반 그래픽이기 때문에 그래픽을 축소 또는 확대하는 경우에 그래픽이 손상되지 않는다.
정확한 색상 표현: 화면상에서 볼 때와 인쇄물로 볼 때 정확히 같은 색상을 표현하는 것을 보장해준다. SVG에는 1600만 이상의 색상들을 제대로 지원한다.
Scalable: XML, HTML4, XHTML과 호환가능할 뿐만 아니라 CSS, XSL, DOM과 함께 사용할 수 있다. 다시 말해서 SVG는 확장가능하며, 스타일을 쉽게 적용할 수 있으며, 그래픽을 제어할 수 있으며, 쉽게 다른 문서와 통합할 수 있다는 것을 의미한다.
오픈 소스: 오픈 소스로 개발되고 있으므로 자유롭게 사용할 수 있으며, 다양한 언어들에서 SVG에 대한 개발을 제공하고 있다.(자바를 예로 들 수 있다)
기존 그래픽과 달리 고품질의 그래픽 이미지를 제공하고, 이미지에 있는 텍스트를 검색할 수 있으며, 사용자와 상호 작용하는 이미지를 작성할 수 있다.
SVG 도구

먼저 SVG를 보기 위해서는 Adobe SVG Viewer가 시스템에 설치되어 있어야 한다. 또는 Sun과 IBM이 개발한 SVG Viewer를 설치할 수 있다. 현재 SVG를 편집, 생성하기 위한 다양한 도구들이 제공되고 있으며, 이들에 대한 전체 목록은 SVG Implementations에서 쉽게 확인할 수 있다. 다음 절에서 설명하게 될 SVG 문법을 보면서 '저러한 것들을 어떻게 일일이 입력할까?'하는 생각은 하지 않아도 된다. 이미 Illustrator 9, Adobe GoLive 5.0, Paint Shop Pro, Corel Draw 9 또는 그 이상의 최근 버전의 그래픽 소프트웨어는 모두 'SVG로 내보내기(export)' 기능을 제공하고 있으며, 기존의 그래픽을 SVG로 쉽게 변환할 수 있다. SVG로 그래픽을 그릴 수 있는 SVG Editor들도 다수 제공되고 있으며, W3C에서는 SVG Editor인 Amaya를 제공하고 있으며, XMLSpy, HomeSite와 같은 소프트웨어 에서도 SVG를 지원한다. Protocol7.com에서는 C#으로 작성된 SVG#의 소스를 제공하고 있으니 관심있는 분들은 참고하기 바란다.

현재 SVG용 도구들은 맥, 리눅스, 솔라리스, 윈도우 환경에서 모두 이용할 수 있으며, 다양한 플랫폼에서 이용할 수 있다. Amaya와 같은 도구는 모티프, GTK, OpenGL과 같은 다양한 위젯으로 포팅되어 있다. 그놈(Gnome)의 GTK+에서의 SVG 지원에 대한 개발이 한창이며, 이미 SVG로 작성한 테마들도 눈에 띄고 있다.

SVG에서의 한글

SVG에서의 인코딩은 utf-8과 ISO-8859-x와 같은 기본적인 인코딩만 제공한다. 따라서 euc-kr과 같은 인코딩을 사용할 수 없으므로 SVG에 한글 텍스트를 추가하고 싶다면 유니코드를 입력하고 편집할 수 있는 SVG Editor(Amaya나 XMLSpy)등을 사용하기 바란다. 여기서는 도구의 사용법은 설명하지 않는다.

SVG 구현

SVG의 구문은 대부분의 경우에 사용하기 쉽고 매우 직관적이라는 것을 알 수 있을 것이다. SVG 역시 다른 언어들과 마찬가지로 XML에 기반한다. 먼저 간단한 상자를 그리는 SVG 예제를 살펴보자.
예제 : SimpleBox.svg

"http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd" >

Example 1 - One  rectangle
style="fill:purple; stroke:gray; stroke-width:0.1cm" />


XML에 익숙한 분들이라면 처음 3줄이 의미하는 것을 알 것이다. 첫번째 줄은 이 문서가 XML 문서라는 것을 가리키며, 인코딩은 utf-8을 사용한다는 것을 의미한다. XML 입문자는
태그는 SVG 이미지를 선언하는 것이다. 태그는 이미지에 대한 설명으로 화면상에 나타나지 않고 단순히 태그상에서 이미지에 대한 설명을 위한 용도로 사용된다. HTML에서 흔히 사용하는 주석 태그()와 같은 역할을 한다. SimpleBox.svg를 저장하고, 브라우저에서 실행하면 다음과 같은 결과를 볼 수 있다. (SVG 플러그인이 설치되어 있지 않다면 플러그인을 설치하고, 라이선스 동의 화면이 나타난다)


예제 결과에서 알 수 있는 것처럼 태그에 지시된 대로 사각형이 생성된다는 것을 알 수 있다. 태그와 한 번 비교해보기 바란다.
style="fill:purple; stroke:gray; stroke-width:0.1cm" />

style 태그에는 fill, stroke, stroke-width등을 한 번에 입력했는데, 원한다면 이들을 각각의 태그 , 로 입력할 수 있다. 다음에는 보다 복잡한 SVG를 살펴보자.
이름 : NotSimple.svg

"http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd" >


Example 2- One  polyline and one  ellipse
style="fill:orange: stroke:#000000; stroke-width:3; opacity=25%" />

points="20,355
150,355 150,305 250,305 250,355
320,355 320,250 420,250 420,355
550,355 440,55 780,55" />


위 태그를 보는 것 만으로는 쉽게 모양이 다가오지 않을 것이다(사실, Amaya나 Illustrator에서 직접 그리는 것이 편하다. 독자도 태그에 익숙해진 다음에는 태그를 직접 입력하는 경우는 거의 없을 것이다). 예제에서 짐작할 수 있는 것처럼 태그는 타원을 그리며, 태그는 여러 개의 직선으로 그려진 선들을 그리는 데 사용한다. 각 선에 대한 좌표는 points 속성(attribute)안에 기록되며 형식은 예제와 같다. Sin 곡선을 그리고 싶다면 points 속성에 2000개 정도의 좌표를 입력하면 자연스러운 곡선을 그려낼 수 있다. 물론, 2000개의 좌표를 손으로 입력하지 않고 프로그램을 통해서 생성해내거나 그래픽 드로잉 프로그램을 사용할 것이다. 태그는 곡선 등을 그리는데 사용하기 때문에 몇 천 개의 좌표는 한 순간에 처리할 수 있다. 하나의 직선을 그리는 데는 태그를 사용한다. 보다 부드러운 곡선을 그리는 데는 태그를 사용한다. 이제 예제를 실행한 결과를 살펴보면 다음과 같다.


다음은 Amaya를 실행한 화면이다. Amaya에서는 태그를 직접 입력하지 않고, 도구를 이용해서 그릴 수 있다. 실제로는 Illustrator와 같은 도구를 사용하는 것이 더 좋지만, 나름대로의 장단점이 있다. 개인적으로는 SVG 드로잉 프로그램인 SodiPodi을 좋아한다. 필자가 보기에 오픈 소스이면서, 사용하기 편하고 뛰어난 기능을 제공한다고 생각한다. 리눅스 사용자는 반드시 써보기 바란다.


이 SVG를 실행한 결과와 소스는 다음과 같다.


이름 : circle.svg


http://www.w3.org/2000/svg">
d="M 87,82 C 83,69 104,52 117,48 C 130,43 152,44 164,56 C 175,67 174,91
171,104 C 167,114 156,130 145,134 C 133,137 114,131 106,124 C 99,118 92,104 94,95 C
95,82 108,68 120,65 C 129,61 144,65 152,73 C 157,78 160,91 159,99 C 157,105 151,114
145,117 C 137,119 126,116 121,111 C 117,107 116,99 118,95 C 119,90 124,83 131,84 C
137,84 142,95 141,98"
style="stroke: #FFCB69" stroke-width="4" transform="3"
pathLength="11"/>


여기에서 알 수 있는 것처럼 특별히 어려운 것은 없다. 이제 기본적인 SVG 태그들을 살펴보자.

기본 태그

태그 설명
SVG에서 최상위 태그로 HTML에서의 태그와 같은 역할을 한다.
SVG에 대한 설명을 위한 태그로 SVG에는 영향을 주지 않는다. HTML의 주석 태그()와 비슷하다.
사각형을 그린다.
원을 그린다.
타원을 그린다.
선을 그린다.
여러 개의 직선을 그린다.
패스로 정의된 곡선을 그린다.
여러 요소들을 하나의 그룹으로 정의하기 위해 사용한다.

기본 데이터 형식 및 인터페이스

데이터 형식 설명
시간에 따라 그래픽 요소들을 변경하기 위해 사용한다.
그래픽으로 렌더링될 텍스트를 정의하기 위해 사용한다.
숫자를 정의하기 위해 사용한다. 음수를 위해 -5와 같이 입력할 수 있다.
실수를 표현하기 위해 사용한다.
원점과 주어진 축과의 거리를 지정하기 위해 사용한다.
각도를 정의하기 위해 사용한다.
색상을 지정하기 위해 사용한다. 216가지의 색상 이름 또는 RGB를 사용할 수 있다.

  추천수 (0)  답글 (0)  참조글 (0)  스크랩 (0) http://kr.blog.yahoo.com/yunneo2000/1111673 주소복사 
인쇄 | 추천 | 스크랩
답글 보임/숨김 답글 (0)
이름   비밀번호   블로그
등록
참조글 쓰기
참조한 글
참조한 글이 없습니다.
블로그 통합 검색 열기
 
 즐겨찾기
 즐겨찾기 글모음
지난 글
2007년 9월
2007년 10월
2007년 11월
2007년 12월
2008년 1월
2008년 2월
2008년 3월
2008년 4월
2008년 5월
2008년 6월
2008년 7월
최근 글
우리나라 선수가..
내 생각과 다르면 적...
이렇게 감감하니..
가장 무서운 싸움..
배 아프신가요
2008 07월
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
최근 답글 전체보기
갈수록 저는 저의 판단..
잡은지 2개월도 안 된..
물론 지중해도 지진대에..
아주 극단적인 저의 생..
벌까지야 받을 필요가 ..
최근 참조글 전체보기
id-1343476-a