SVG를 사용한 예. 객체 태그를 사용하여 SVG 파일을 포함한 그래픽 삽입


D3는 SVG 기반 비주얼을 생성하고 조작하는 데 가장 유용합니다. 다음을 사용하여 그리기 div" 및 기타 HTML 요소는 가능하지만 약간 투박하고 일반적으로 브라우저마다 렌더링 불일치가 있습니다. SVG를 사용하는 것이 더 안정적이고 시각적으로 일관되며 더 빠릅니다.

Illustrator와 같은 벡터 그래픽 편집기를 사용하여 SVG 파일을 만들 수 있지만 코드를 사용하여 이를 만드는 방법을 배워야 합니다.

SVG 요소

확장 가능한 벡터 그래픽은 텍스트 기반 이미지 형식입니다. 각 SVG 이미지는 HTML과 유사한 코드 마크업을 사용하여 정의됩니다. SVG 코드는 HTML 문서에 직접 포함될 수 있습니다. 모든 웹 브라우저는 SVG를 지원하며, Internet Explorer 버전 8 이하만 예외입니다. SVG는 XML을 기반으로 하므로 닫는 태그가 없는 요소는 자체적으로 닫혀야 함을 알 수 있습니다. 예를 들어:

무엇이든 그리기 전에 SVG 요소를 만들어야 합니다. SVG 요소를 모든 시각적 개체가 그려지는 캔버스로 생각하십시오(이러한 방식으로 SVG는 개념적으로 HTML 캔버스 요소와 유사합니다). 최소한 속성을 사용하여 너비와 높이를 설정하는 것이 좋습니다. 너비그리고 , 각각. 지정하지 않으면 SVG가 블록의 전체 영역에 걸쳐 늘어납니다.

위의 코드를 사용하여 생성된 SVG 요소는 다음과 같습니다.

그 사람이 보이지 않나요? 위의 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 요소 코드 보기를 선택합니다. 웹 검사기에 다음과 유사한 내용이 표시되어야 합니다.

가로 500픽셀, 세로 50픽셀에 걸쳐 있는 SVG 요소가 있습니다.

또한 브라우저는 픽셀을 기본 측정 단위로 취급합니다. 크기를 500px과 50px가 아닌 500과 50으로 지정했습니다. px를 명시적으로 지정하거나 다른 측정 단위를 지정할 수 있습니다. 예를 들면 다음과 같습니다. 여자 이름, 태평양 표준시, ~에, 센티미터, 그리고 mm.

단순한 모양

SVG 요소 내에 배치할 수 있는 다양한 모양이 있습니다. 이 세트에는 다음이 포함됩니다: 직사각형, , 타원, , 텍스트그리고 .

컴퓨터 그래픽 프로그래밍에 익숙하다면 일반적으로 픽셀 기반 좌표계는 왼쪽 상단에서 시작하고 점 좌표(0,0)를 갖는다는 것을 기억할 것입니다. 증가하다 엑스왼쪽에서 오른쪽으로 발생, 증가 ~에-위에서 아래로.

0,0 100,20 200,40

직사각형정사각형을 그립니다. 제곱은 네 가지 값으로 제공됩니다. 엑스, 와이- 왼쪽 상단 모서리의 지점을 나타냅니다. 너비, - 정사각형의 너비와 높이를 나타냅니다. 이 사각형은 SVG의 전체 공간을 차지합니다.

원을 그립니다. 원은 세 가지 수량으로 정의됩니다. CX, 싸이외접원의 중심에 위치한 점을 나타냅니다. 아르 자형원의 반지름을 지정합니다. 이 원은 속성이 SVG의 중앙에 위치합니다. CX("center-x")는 250입니다. 예:

타원와 비슷하게 설정되어 있다 , 그러나 반경은 두 축을 따라 지정된다고 가정합니다. 엑스그리고 ~에. 대신에 엑스사용 RX, 대신에 와이 - .

선을 그립니다. 사용 x1그리고 y1선의 시작 부분의 좌표를 설정하고 x2그리고 y2끝 좌표를 설정합니다. 기인하다 뇌졸중선의 색상을 설정해야 합니다. 그렇지 않으면 선이 보이지 않게 됩니다.

텍스트텍스트를 그립니다. 사용 엑스왼쪽 가장자리를 나타냅니다. 와이소위 기준선의 수직 위치를 나타냅니다.

쉬워요쉬워요

텍스트에 대해 고유한 스타일을 설정하지 않는 한 텍스트는 상위 요소의 CSS 글꼴 스타일을 상속합니다. 위 텍스트의 형식이 이 단락에 설명된 텍스트와 어떻게 일치하는지 확인하세요. 다음과 같이 서식 스타일을 재정의할 수 있습니다.

쉬워요쉬워요

또한 시각적 요소가 SVG 요소의 테두리에 닿으면 잘립니다. 사용시 주의하세요 텍스트, 텍스트 물결선이 잘리지 않도록 합니다. 기준선을 설정하면(예: ~에) 50과 동일하며 SVG의 높이와 같습니다.

쉬워요쉬워요

위에서 설명한 모양보다 더 복잡한 것(예: 지도의 국가 실루엣)을 그리므로 별도로 설명합니다. 이제 간단한 모양으로 작업하겠습니다.

SVG 요소 스타일링

기본적으로 모든 SVG 요소에는 검정색 채우기가 있고 테두리가 없습니다. 이 이상의 기능을 원한다면 요소에 스타일을 적용해야 합니다. 일반적인 SVG 속성은 다음과 같습니다.

  • 채우다- 채우기. 색상 의미. CSS와 마찬가지로 색상은 여러 가지 방법으로 지정할 수 있습니다.
    • 이름: 주황색;
    • 16진수 체계의 값: #3388aa, #38a;
    • RGB 형식의 값: RGB(10, 150, 20);
    • RGBA 형식의 값: RGBA(10, 150, 20, 0.5).
  • 뇌졸중- 액자. 색상 의미.
  • 획 너비- 프레임 너비(보통 픽셀 단위).
  • 불투명- 투명성. 0.0(완전히 투명함)과 1.0(완전히 표시됨) 사이의 숫자 값입니다.

와 함께 텍스트다음 속성을 사용할 수도 있습니다.

  • 글꼴 모음
  • 글꼴 크기

SVG 요소에 스타일을 적용하는 방법에는 두 가지가 있습니다. 요소 내의 스타일을 속성으로 직접 지정하거나 CSS 규칙을 통해 지정하는 것입니다.

다음은 요소에 직접 설정된 일부 CSS 속성입니다. :

다르게 할 수도 있습니다. 스타일 속성을 지정하지 않고 스타일 클래스를 지정합니다(일반 HTML 요소와 마찬가지로).

그런 다음 추가 채우다, 뇌졸중그리고 획 너비필수 클래스의 CSS 스타일에 있는 매개변수:

호박(채우기: 노란색; 획: 주황색; 획 너비: 5; )

두 번째 접근 방식에는 몇 가지 확실한 장점이 있습니다.

  1. 클래스를 한 번 정의하면 여러 요소에 적용할 수 있습니다.
  2. CSS 코드는 요소 내부의 속성보다 이해하기 쉽습니다.
  3. 이러한 이유로 두 번째 접근 방식은 유지 관리가 더 쉽고 구현도 더 빠릅니다.

그러나 CSS를 사용하여 SVG 스타일을 지정하는 것은 일부 사람들에게는 혼란스러울 수 있습니다. 채우다, 뇌졸중, 획 너비여전히 CSS 속성이 아닙니다. (가장 가까운 CSS 속성은 다음과 같습니다. 배경색그리고 국경). SVG 요소에 대해 어떤 스타일 시트 규칙이 지정되어 있는지 기억하는 데 도움이 되도록 다음을 포함하는 것이 좋습니다. svg CSS 선택기에서:

SVG .호박( /* ... */ )

오버레이 및 그리는 순서

SVG에는 레이어가 없으며 깊이 개념도 없습니다. SVG는 CSS 속성을 지원하지 않습니다. Z-색인, 따라서 모양은 2차원 공간 내에서 정렬될 수 있습니다.

그러나 여러 도형을 그리면 서로 겹칩니다.

코드에 요소가 나열되는 순서에 따라 깊이가 결정됩니다. 보라색 사각형이 코드에서 가장 먼저 나열되므로 먼저 그려집니다. 그런 다음 보라색 사각형 위에 파란색 사각형이 그려진 다음 파란색과 보라색 사각형 위에 녹색 사각형이 그려집니다.

SVG 모양을 마치 캔버스에 그리는 것처럼 생각해보세요. 마지막에 적용된 색상이 나머지 색상을 덮고 "앞"이 됩니다.

그리기 순서의 이러한 측면은 어떤 것으로도 차단되어서는 안 되는 여러 시각적 요소가 있는 경우 중요해집니다. 예를 들어, 산점도에 표시되는 축에 축 또는 값 레이블이 있을 수 있습니다. 축과 레이블은 나머지 요소 앞에 표시되고 표시되도록 끝에 SVG에 추가되어야 합니다.

투명도

투명도는 시각화 요소가 겹치지만 모두 표시하려는 경우 또는 일부 요소는 강조 표시하고 다른 요소는 눈에 띄지 않게 만들 때 유용할 수 있습니다.

투명도를 적용하는 방법에는 두 가지가 있습니다. 알파 채널과 함께 RGB 색상을 사용하거나 속성을 설정하는 것입니다. 불투명숫자 값.

당신이 사용할 수있는 RGBA()예를 들어 속성에서 색상을 지정해야 하는 경우 채우다그리고 뇌졸중. RGBA()빨간색, 녹색, 파란색에 대해 0~255 범위의 3개 값과 0.0~1.0 범위의 알파 채널을 전달해야 합니다.

방법을 참고하세요 RGBA(), 투명도가 적용됩니다. 채우다그리고 뇌졸중독립적으로 속성을 지정합니다. 다음 원의 채우기는 75% 투명하고 테두리는 25% 투명합니다.

전체 요소에 투명도를 적용하려면 속성을 설정해야 합니다. 불투명. 다음은 완전히 보이는 원입니다.

투명도가 다른 동일한 원입니다.

속성을 사용할 수도 있습니다. 불투명색상이 형식으로 지정된 요소의 경우 RGBA(). 이렇게 하면 투명성이 배가됩니다. 아래 원은 동일한 RGBA 색상 값을 사용합니다. 채우다그리고 뇌졸중. 첫 번째 요소에 속성 세트가 없습니다. 불투명이고 나머지 두 개는 다음과 같습니다.

세 번째 원에 주목하세요. 불투명 0.2 또는 20%와 같습니다. 그러나 보라색 부분의 투명도는 75%입니다. 따라서 보라색 부분은 결국 0.2*0.75 = 0.15 또는 15% 투명하게 됩니다.

HTML 이미지태그를 사용하여 웹페이지에 추가됨 . 그래픽을 사용하면 웹 페이지가 시각적으로 더욱 매력적으로 보입니다. 이미지는 웹 문서의 본질과 내용을 더 잘 전달하는 데 도움이 됩니다.

HTML 태그 사용 그리고 생성될 수 있다 이미지 맵활성 영역이 있습니다.

HTML 문서에 이미지 삽입

1. 태그

요소 alt 속성을 사용하여 추가된 이미지와 대체 콘텐츠를 나타냅니다. 요소 이후 소문자인 경우 블록 요소 안에 배치하는 것이 좋습니다. 예를 들면 다음과 같습니다.

또는

.

꼬리표 필수 src 속성이 있으며 그 값은 이미지에 대한 절대 또는 상대 경로입니다.

태그의 경우 다음 속성을 사용할 수 있습니다.

표 1. 태그 속성
기인하다 설명, 허용되는 값
대체 alt 속성은 이미지에 대체 텍스트를 추가합니다. 이미지가 로드되기 전이나 그래픽이 비활성화된 경우 이미지가 나타나는 곳에 표시되며, 이미지 위로 마우스를 가져가면 도구 설명으로도 표시됩니다.
구문: alt="이미지 설명" . !}
교차 기원 crossorigin 속성을 사용하면 CORS 요청을 사용하여 다른 도메인의 리소스에서 이미지를 로드할 수 있습니다. CORS 요청을 사용하여 캔버스에 로드된 이미지는 재사용할 수 있습니다. 허용되는 값:
익명 - HTTP 헤더를 사용하여 교차 출처 요청이 이루어지며 자격 증명이 전송되지 않습니다. 서버가 콘텐츠를 요청한 서버에 자격 증명을 제공하지 않으면 이미지가 손상되고 사용이 제한됩니다.
use-credentials — 자격 증명을 전달하여 교차 출처 요청이 수행됩니다.
구문: crossorigin="anonymous" .
height 속성은 이미지의 높이를 지정합니다. px 또는 %로 지정할 수 있습니다.
구문: 높이: 300px.
ismap ismap 속성은 사진이 서버에 있는 지도 이미지의 일부임을 나타냅니다(지도 이미지는 클릭할 수 있는 영역이 있는 이미지입니다). 지도 이미지를 클릭하면 좌표가 URL 쿼리 문자열로 서버에 전송됩니다. ismap 속성은 요소가 다음인 경우에만 허용됩니다. 요소의 후손입니다. 유효한 href 속성을 사용하세요.
구문: ismap.
긴 설명 alt 속성을 보완하는 확장된 이미지 설명 URL입니다.
구문: longdesc="http://www.example.com/description.txt" .
소스 src 속성은 이미지의 경로를 지정합니다.
구문: src="flower.jpg" .
크기 디스플레이 옵션에 따라 이미지 크기를 설정합니다. srcset 속성이 지정된 경우에만 작동합니다. 속성 값은 쉼표로 구분된 하나 이상의 문자열입니다.
srcset 화면 해상도에 따라 선택될 이미지 소스 목록을 만듭니다. src 속성과 함께 또는 대신 사용할 수 있습니다. 속성 값은 쉼표로 구분된 하나 이상의 문자열입니다.
지도 사용 usemap 속성은 이미지를 이미지 맵으로 지정합니다. 값은 # 기호로 시작해야 합니다. 값은 태그의 이름 또는 ID 속성 값과 연결됩니다. 요소 간의 연결을 생성합니다. 그리고 . 요소가 다음과 같은 경우 속성을 사용할 수 없습니다. 요소의 후손입니다. 또는
너비 width 속성은 이미지의 너비를 지정합니다. px 또는 %로 지정할 수 있습니다.
구문: 너비: 100% .

1.1. 이미지 주소

이미지 주소는 전체(절대 URL)로 지정될 수 있습니다. 예:
URL(http://anysite.ru/images/anyphoto.png)

또는 상대 경로를 통해 문서또는 루트 디렉토리웹사이트:
url(../images/anyphoto.png) - 문서의 상대 경로,
url(/images/anyphoto.png) - 루트 디렉터리의 상대 경로입니다.

이는 다음과 같이 해석됩니다.
../ - 한 수준 위로 올라가 루트 디렉터리로 이동하는 것을 의미합니다.
이미지/ - 이미지가 있는 폴더로 이동합니다.
anyphoto.png - 이미지 파일을 가리킵니다.

1.2. 이미지 크기

이미지 크기를 설정하지 않으면 도면이 실제 크기로 페이지에 표시됩니다. 너비 및 높이 속성을 사용하여 이미지의 크기를 편집할 수 있습니다. 속성 중 하나만 지정하면 사진의 비율을 유지하기 위해 두 번째 속성이 자동으로 계산됩니다.

1.3. 그래픽 파일 형식

JPEG 형식 (공동사진전문가그룹). JPEG 이미지는 사진에 이상적이며 수백만 가지의 다양한 색상을 포함할 수 있습니다. 이미지는 GIF보다 압축률이 더 좋지만 텍스트와 단색의 넓은 영역이 얼룩덜룩해질 수 있습니다.

GIF 형식 (그래픽 교환 형식). 로고와 같은 단색 영역이 있는 이미지를 압축하는 데 적합합니다. GIF를 사용하면 색상 중 하나를 투명하게 설정하여 웹 페이지의 배경이 이미지의 일부를 통해 표시되도록 할 수 있습니다. GIF에는 간단한 애니메이션도 포함될 수 있습니다. GIF 이미지에는 256가지 음영만 포함되어 있어 이미지가 포스터처럼 얼룩덜룩하고 색상이 비현실적으로 보입니다.

PNG 형식 (휴대용 네트워크 그래픽). GIF 및 JPEG 형식의 최고의 기능을 포함합니다. 256가지 색상이 포함되어 있으며 색상 중 하나를 투명하게 만드는 동시에 이미지를 GIF 파일보다 작은 크기로 압축할 수 있습니다.

APNG 형식 (애니메이션 휴대용 네트워크 그래픽). PNG 형식을 기반으로 하는 이미지 형식입니다. 애니메이션을 저장할 수 있고 투명도도 지원합니다.

SVG 형식 (확장 가능한 벡터 그래픽). SVG 드로잉은 XML 형식(선, 타원, 다각형 등)으로 설명된 일련의 기하학적 모양으로 구성됩니다. 정적 그래픽과 애니메이션 그래픽이 모두 지원됩니다. 기능 세트에는 다양한 변환, 알파 마스크, 필터 효과 및 템플릿 사용 기능이 포함됩니다. SVG 이미지는 품질 저하 없이 크기를 조정할 수 있습니다.

BMP 형식 (비트맵 그림). 템플릿이 직사각형 픽셀 격자인 압축되지 않은(원본) 래스터 이미지입니다. 비트맵 파일은 헤더, 팔레트, 그래픽 데이터로 구성됩니다. 헤더에는 그래픽 이미지 및 파일에 대한 정보(픽셀 깊이, 높이, 너비 및 색상 수)가 저장됩니다. 팔레트는 팔레트 이미지(8비트 이하)를 포함하고 256개 이하의 요소로 구성된 비트맵 파일에만 표시됩니다. 그래픽 데이터는 그림 자체를 나타냅니다. 이 형식의 색상 심도는 픽셀당 1, 2, 4, 8, 16, 24, 32, 48비트일 수 있습니다.

ICO 형식 (윈도우 아이콘). Microsoft Windows의 파일 아이콘 저장 형식. 또한 Windows 아이콘은 인터넷상의 웹사이트에서도 아이콘으로 사용됩니다. 브라우저에서 웹사이트 주소나 북마크 옆에 표시되는 형식의 사진입니다. 하나의 ICO 파일에는 하나 이상의 아이콘이 포함되어 있으며 각 아이콘의 크기와 색상은 별도로 설정할 수 있습니다. 아이콘 크기는 임의의 크기일 수 있지만 가장 일반적인 것은 변이 16, 32, 48픽셀인 정사각형 아이콘입니다.

2. 태그

꼬리표 활성 영역이 있는 지도 형태로 그래픽 이미지를 제공하는 역할을 합니다. 핫스팟은 마우스 커서를 위에 올려 놓았을 때 나타나는 모양의 변화로 식별됩니다. 사용자는 활성 영역을 클릭하여 관련 문서로 이동할 수 있습니다.

태그에는 지도의 이름을 지정하는 이름 속성이 있습니다. 태그의 이름 속성 값 요소의 usemap 속성에 있는 이름과 일치해야 합니다. :

...

요소 여러 가지 요소가 포함되어 있습니다 , 지도 이미지에서 대화형 영역을 정의합니다.

3. 태그

꼬리표 클라이언트 측 이미지 맵의 일부로 하나의 활성 영역만 설명합니다. 요소에 닫는 태그가 없습니다. 하나의 활성 영역이 다른 영역과 겹치는 경우 영역 목록의 첫 번째 링크가 구현됩니다.

표 2. 태그 속성
기인하다 간단한 설명
대체 활성 지도 영역에 대한 대체 텍스트를 설정합니다.
좌표 화면에서 영역의 위치를 ​​결정합니다. 좌표는 길이 단위로 제공되며 쉼표로 구분됩니다.
을 위한 - 원의 중심과 반경의 좌표;
을 위한 직사각형- 왼쪽 상단과 오른쪽 하단 모서리의 좌표
을 위한 다각형— 필요한 순서대로 다각형 꼭지점의 좌표; 그림의 논리적 완성을 위해 첫 번째 좌표와 동일한 마지막 좌표를 표시하는 것도 권장됩니다.
다운로드 href 속성을 보완하고 예를 들어 PDF 파일처럼 먼저 리소스를 열 필요 없이 사용자가 링크를 클릭하는 순간 리소스가 로드되어야 함을 브라우저에 알립니다. 속성의 이름을 지정함으로써 로드된 객체에 이름을 부여합니다. 값을 지정하지 않고 속성을 사용할 수 있습니다.
href 링크의 URL을 지정합니다. 절대 또는 상대 링크 주소를 지정할 수 있습니다.
hreflang 연결된 웹 문서의 언어를 지정합니다. href 속성과 함께 사용됩니다. 허용되는 값은 언어 코드를 나타내는 문자 쌍으로 구성된 약어입니다.
미디어 파일을 최적화할 장치 유형을 결정합니다. 값은 모든 미디어 쿼리일 수 있습니다.
상대 현재 문서와 관련 문서 간의 관계에 대한 정보로 href 속성을 확장합니다. 허용되는 값:
대체 - 문서의 대체 버전(예: 페이지의 인쇄된 형식, 번역 또는 미러)에 대한 링크입니다.
작성자 — 문서 작성자에 대한 링크입니다.
북마크 - 북마크에 사용되는 영구 URL입니다.
도움말 - 도움말 링크입니다.
라이센스 - 이 웹 문서에 대한 저작권 정보에 대한 링크입니다.
next/prev - 개별 URL 간의 관계를 나타냅니다. 이 마크업 덕분에 Google은 해당 페이지의 콘텐츠가 논리적 순서로 관련되어 있는지 확인할 수 있습니다.
nofollow - 검색 엔진이 특정 페이지나 특정 링크의 링크를 따라가는 것을 방지합니다.
noreferrer - 링크를 따라갈 때 브라우저가 사이트 방문자가 어느 페이지에서 왔는지에 대한 정보를 기록하는 HTTP 요청 헤더(Referrer)를 보내서는 안 된다는 것을 나타냅니다.
프리페치 - 대상 문서가 캐시되어야 함을 나타냅니다. 즉, 백그라운드의 브라우저는 페이지의 콘텐츠를 캐시에 다운로드합니다.
검색 - 대상 문서에 검색 도구가 포함되어 있음을 나타냅니다.
태그 - 현재 문서에 대한 키워드를 지정합니다.
모양 지도의 활성 영역 모양과 해당 좌표를 지정합니다. 다음 값을 사용할 수 있습니다.
ret — 직사각형 활성 영역;
원 - 원 모양의 활성 영역입니다.
폴리 - 다각형 모양의 활성 영역
기본값 - 활성 영역이 이미지의 전체 영역을 차지합니다.
표적 링크를 클릭하면 문서가 다운로드될 위치를 지정합니다. 다음 값을 허용합니다.
_self — 페이지가 현재 창에 로드됩니다.
_blank — 페이지가 새 브라우저 창에서 열립니다.
_parent — 페이지가 상위 프레임에 로드됩니다.
_top - 페이지가 전체 브라우저 창에 로드됩니다.
유형 링크 파일의 MIME 유형을 지정합니다. 파일 확장자.

4. 이미지 맵 생성 예시

1) 원본 이미지를 원하는 모양의 활성 영역에 표시합니다. 영역의 좌표는 사진 처리 프로그램을 사용하여 계산할 수 있습니다. 예를 들어, 어도비 포토샵또는 페인트.


쌀. 1. 지도 생성을 위한 이미지 마크업 예시

2) 태그에 카드 이름을 추가하여 설정합니다. 이름 속성을 사용합니다. 태그의 usemap 속성에 동일한 값을 할당합니다. .

Jpg" alt="꽃_사진" width="680" height="383" usemap="#flowers"> !} 거베라 히아신스 카밀레 튤립
쌀. 2. 이미지 맵 생성 예시로, 꽃에 마우스 커서를 올리면 설명이 있는 페이지로 이동합니다.

벡터 그래픽은 인쇄에 널리 사용됩니다. 하지만 SVG를 사용하는 웹사이트에도 사용할 수 있습니다( 확장 가능한 벡터 그래픽 - 확장 가능한 벡터 그래픽). 에 따르면 W3.org 사양에서는 SVG를 다음과 같이 정의합니다.

XML로 2차원 그래픽을 기술하기 위한 언어입니다. SVG에서는 벡터 그래픽(직선과 곡선으로 구성된 경로 등), 이미지, 텍스트 등 세 가지 유형의 개체를 허용합니다.

SVG가 2011년 8월부터 W3C 권장 사항에 포함되었음에도 불구하고 이 기술은 래스터 이미지에 비해 여러 가지 장점이 있지만 웹 프로젝트에서는 실제로 사용되지 않습니다. 이번 강의 시리즈에서는 웹 페이지에서 SVG 요소를 사용하여 작업하는 방법을 소개합니다.

SVG의 장점

해상도 독립성

래스터 이미지는 해상도에 따라 다릅니다. 특정 배율로 크기를 조정하면 그래픽이 눈에 띄지 않는 모양으로 나타납니다. 벡터 그래픽의 경우 원칙적으로 이러한 상황은 불가능합니다. 모든 것이 배율이 변경되면 자동으로 다시 계산되는 수학적 표현으로 표현되고 어떤 조건에서도 품질이 유지되기 때문입니다.

HTTP 요청 수 줄이기

SVG는 svg 태그를 사용하여 HTML 문서에 직접 삽입할 수 있으므로 브라우저는 그래픽을 제공하기 위해 어떤 요청도 할 필요가 없습니다. 이 접근 방식은 웹 사이트의 로딩 특성에 좋은 영향을 미칩니다.

스타일 및 스크립트

svg 태그를 포함하면 CSS를 사용하여 그래픽 스타일을 쉽게 지정할 수도 있습니다. 배경색, 투명도, 테두리 등과 같은 개체 속성을 변경할 수 있습니다. JavaScript를 사용하여 비슷한 방식으로 그래픽을 조작할 수 있습니다.

편집 및 애니메이션이 용이함

SVG 객체는 CSS 또는 JavaScript를 사용하여 애니메이션을 적용할 수 있습니다. SVG 개체는 텍스트 편집기를 사용하여 수정할 수도 있습니다.

더 작은 파일 크기

SVG는 래스터 그래픽에 비해 파일 크기가 더 작습니다.

기본 SVG 모양

사양에 따르면 선, 다중선, 직사각형, 원, 타원 등 여러 가지 기본 모양을 그릴 수 있습니다. 모든 요소는 태그에 삽입되어야 합니다. ... . 기본 요소를 자세히 살펴보겠습니다.

SVG에 선을 표시하려면 요소를 사용하십시오. . 그는 시작과 끝이라는 두 지점을 결정해야 하는 부분을 그립니다.

세그먼트의 시작은 x1 및 y1 속성에 의해 결정되고 끝점은 x2 및 y2 속성의 좌표에 의해 결정됩니다.

선의 색상과 너비를 각각 정의하는 데 사용되는 두 가지 다른 속성(획 및 획 너비)도 있습니다.

이 개체는 다음과 유사합니다. , 그러나 요소를 사용하여 한 번에 여러 선을 그릴 수 있습니다.

요소 점의 좌표를 지정하는 데 사용되는 points 속성을 포함합니다.

직사각형은 요소를 사용하여 그려집니다. . 너비와 높이를 결정해야 합니다.

원을 표시하려면 요소를 사용합니다. . 다음 예에서는 r 속성에 정의된 반경 100의 원을 만듭니다.

처음 두 속성 cx와 cy는 중심 좌표를 정의합니다. 위의 예에서는 두 좌표 모두에 대해 값을 102로 설정했습니다. 기본값은 0입니다.

타원을 표시하려면 요소를 사용합니다. . 원과 동일하게 작동하지만 rx 및 ry 속성을 사용하여 x 및 y 반경을 구체적으로 지정할 수 있습니다.

요소 삼각형, 육각형 등의 다면체 모양을 표시합니다. 예를 들어:

벡터 그래픽 편집기 사용

간단한 SVG 개체를 HTML로 출력하는 것은 쉽습니다. 그러나 개체의 복잡성이 증가함에 따라 이 방법을 사용하면 많은 양의 작업이 필요할 수 있습니다.

하지만 어떤 벡터 그래픽 편집기든 사용할 수 있습니다(예: 어도비 일러스트레이터또는 잉크스케이프) 객체를 생성합니다. 이와 같은 도구가 있는 경우 HTML 태그에 그래픽을 인코딩하는 것보다 필요한 개체를 그리는 것이 훨씬 쉽습니다.

파일의 벡터 그래픽 명령을 HTML 문서로 복사할 수 있습니다. 또는 embed , iframe 및 object 요소 중 하나를 사용하여 .svg 파일을 포함할 수 있습니다.

결과는 동일합니다.

브라우저 지원

SVG는 IE 버전 8 이하를 제외한 대부분의 최신 브라우저에서 잘 지원됩니다. 하지만 이 문제는 JavaScript 라이브러리를 사용하여 해결할 수 있습니다. 작업을 더 쉽게 하기 위해 ReadySetRaphael.com 도구를 사용하여 SVG 코드를 Raphael 형식으로 변환할 수 있습니다.

먼저 라이브러리를 다운로드하여 HTML 문서에 포함시킵니다. 그런 다음 .svg 파일을 로드하고, 로드한 후 결과 코드를 복사하여 함수에 붙여넣습니다.

body 태그에는 식별자가 rsr인 다음 div 요소를 배치합니다.

그리고 모든 것이 준비되었습니다.

시리즈의 다음 튜토리얼에서는 CSS에서 SVG 개체의 스타일을 지정하는 방법을 살펴보겠습니다.

이 게시물은 사이트의 벡터 그래픽 기본 사항을 다루는 SVG(Scalable Vector Graphic)에 대한 일련의 기사 중 첫 번째입니다.

벡터 그래픽은 인쇄에 널리 사용됩니다. 웹사이트의 경우 w3.org의 공식 사양에 따르면 SVG가 있습니다. XML로 2차원 그래픽을 기술하기 위한 언어. SVG에는 모양, 이미지, 텍스트라는 세 가지 유형의 개체가 포함되어 있습니다. SVG는 1999년부터 존재해 왔으며 2011년 8월 16일부터 W3C 권장 사항에 포함되었습니다. SVG는 몇 가지 중요한 장점이 있음에도 불구하고 웹 개발자들에 의해 매우 과소평가되었습니다.

SVG의 장점

  • 스케일링 : 래스터 그래픽과 달리 SVG는 스케일링을 해도 품질이 떨어지지 않아 레티나 개발에 사용하기 편리합니다.
  • HTTP 요청 감소: SVG를 사용하면 서버 호출 수가 감소하고 그에 따라 사이트 로딩 속도가 증가합니다.
  • 스타일 지정 및 스크립팅: CSS를 사용하면 배경, 투명도, 테두리 등 사이트의 그래픽 설정을 변경할 수 있습니다.
  • 애니메이션 및 편집: 자바스크립트를 사용하면 SVG에 애니메이션을 적용할 수 있을 뿐만 아니라 텍스트 또는 그래픽 편집기(InkScape 또는 Adobe Illustrator)에서 편집할 수도 있습니다.
  • 작은 크기: SVG 개체의 무게는 래스터 이미지보다 훨씬 가볍습니다.

기본 SVG 모양

공식 사양에 따르면 태그를 사용하여 SVG를 사용하여 직사각형, 원, 선, 타원, 폴리선 또는 다각형 등 간단한 개체를 그릴 수 있습니다. svg.

태그를 이용한 간단한 선 시작점(x1 및 x2)과 끝점(y1 및 y2)이라는 두 개의 매개변수만 사용합니다.

또한 획 및 획 너비 속성이나 스타일을 추가하여 색상과 너비를 설정할 수도 있습니다.

스타일="스트로크 너비:1; 스트로크:rgb(0,0,0);"

파선

구문은 이전 구문과 유사하며 태그가 사용됩니다. 폴리라인, 기인하다 포인트들포인트 설정:

직사각형

ret 태그에 의해 호출되면 다음과 같은 속성을 추가할 수 있습니다.

태그로 호출 , 속성을 사용하는 예에서는 아르 자형반경을 설정하고, CX그리고 싸이중심 좌표를 지정합니다.

타원

태그로 호출 타원, 비슷하게 작동합니다 , 그러나 두 개의 반경을 지정할 수 있습니다 - RX그리고 :

다각형

태그로 호출 다각형, 다각형의 변 수가 다를 수 있습니다.

편집기 사용

예제에서 볼 수 있듯이 기본 SVG 모양을 그리는 것은 매우 간단하지만 객체는 훨씬 더 복잡할 수 있습니다. 이를 위해서는 파일을 SVG 형식으로 저장한 다음 텍스트 편집기에서 편집할 수 있는 Adobe Illustrator 또는 Inkscape와 같은 벡터 그래픽 편집기를 사용해야 합니다. Embed, iframe 및 개체를 사용하여 페이지에 SVG를 삽입할 수 있습니다.

OpenClipArt.org의 iPod 이미지를 예로 들 수 있습니다.

기본 개념 및 사용법

SVG(Scalable Vector Graphics) 형식은 벡터 그래픽 표준 제품군의 일부입니다. 벡터 그래픽은 각 픽셀의 색상 정의가 일부 데이터 배열에 저장되는 래스터 그래픽과 다릅니다. 오늘날 인터넷에서 사용되는 가장 일반적인 래스터 형식은 JPEG, GIF 및 PNG이며 각각 고유한 장점과 단점이 있습니다.

일반적으로 사용되는 약어
  • CSS: 계단식 스타일 시트
  • GIF: 그래픽 교환 형식
  • GUI: 그래픽 사용자 인터페이스
  • HTML: 하이퍼텍스트 마크업 언어
  • JPEG: 공동 사진 전문가 그룹
  • PNG: 휴대용 네트워크 그래픽
  • SVG: 확장 가능한 벡터 그래픽
  • XML: 확장 가능한 마크업 언어

SVG 형식은 래스터 형식에 비해 몇 가지 장점이 있습니다.

  • SVG 그래픽은 개별 픽셀마다 데이터를 저장할 필요가 없기 때문에 원본 파일에 저장하는 데 훨씬 적은 데이터가 필요한 수학적 공식을 사용하여 생성됩니다.
  • 벡터 이미지의 크기가 더 잘 조정됩니다. 온라인에 게시된 이미지를 원래 크기 이상으로 확대하려고 하면 이미지가 왜곡되거나 픽셀화될 수 있습니다.

    이는 원본 픽셀 데이터가 특정 이미지 크기에 맞게 설계되었기 때문입니다. 크기를 조정할 때 이미지 렌더러는 새 픽셀을 채우는 데 어떤 데이터를 사용해야 하는지 추측합니다. 벡터 이미지는 크기 조정에 더 강합니다. 이미지 크기를 변경할 때 해당 수학 공식을 조정할 수 있습니다.

  • 벡터 그래픽의 소스 파일 크기는 일반적으로 더 작으므로 SVG 그래픽은 래스터 그래픽보다 빠르게 로드되고 데이터 집약도가 낮습니다.
  • SVG 이미지는 브라우저에 의해 렌더링되며 프로그래밍 방식으로 렌더링될 수 있습니다. 동적으로 변경될 수 있으므로 차트와 같은 데이터 기반 애플리케이션에 특히 적합합니다.
  • 원본 SVG 이미지 파일은 텍스트 형식이므로 액세스 가능하고 검색 엔진 친화적입니다.

이 기사에서는 SVG 형식의 이점과 HTML5 웹 사이트 구축에 어떻게 도움이 되는지 알아보겠습니다.

SVG 기본

SVG 그래픽을 만드는 것은 JPEG, GIF 또는 PNG 파일을 만드는 것과 완전히 다른 프로세스를 사용합니다. JPEG, GIF 및 PNG 파일은 일반적으로 Adobe Photoshop과 같은 일종의 이미지 편집 프로그램을 사용하여 생성됩니다. SVG 이미지는 일반적으로 일종의 XML 기반 언어를 사용하여 생성됩니다. 이미지 뒤에 XML 코드를 생성하는 SVG 그래픽 편집용 그래픽 사용자 인터페이스가 있습니다. 그러나 이 기사에서는 XML을 사용하여 직접 작업한다고 가정합니다. SVG 이미지 편집 프로그램에 대한 정보는 섹션에서 찾을 수 있습니다.

목록 1은 2픽셀의 검은색 테두리가 있는 빨간색 원을 그리는 간단한 SVG XML 파일의 예를 보여줍니다.

목록 1. SVG XML 파일

위의 코드는 그림 1에 표시된 이미지를 생성합니다.

그림 1. 2픽셀의 검은색 테두리가 있는 빨간색 원

기본 기하학적 모양 만들기

SVG 그래픽으로 작업할 때 XML 태그는 기하학적 모양을 만드는 데 사용됩니다. 이러한 XML 요소는 표 1에 표시되어 있습니다.

표 1. SVG 그래픽 생성을 위한 XML 요소

선 요소

선 요소는 가장 단순한 그래픽 요소입니다. Listing 2에서는 수평선을 만드는 방법을 보여준다.

목록 2. 수평선 만들기

목록 2에 표시된 코드는 그림 2에 표시된 이미지를 생성합니다.

그림 2. 단순한 수평선

SVG 루트 태그에는 그리기 가능 영역을 정의하는 너비 및 높이 속성이 있습니다. 이러한 속성은 다른 HTML 요소의 높이 및 너비 속성과 동일한 방식으로 작동합니다. 이 경우 작업 영역이 사용 가능한 모든 공간을 차지하는 것으로 설정됩니다.

또한 이 예에서는 스타일 태그를 사용합니다. SVG 그래픽은 다양한 방법을 사용하여 콘텐츠에 스타일을 적용하는 것을 지원합니다. 이 문서의 스타일은 이미지를 쉽게 볼 수 있도록 하거나 그림을 렌더링하는 데 색상 및 선 너비와 같은 특정 속성이 필요할 때 포함됩니다. SVG 그래픽에 스타일을 적용하는 방법에 대한 자세한 내용은 섹션에서 확인할 수 있습니다.

작업공간을 기준으로 X 및 Y축의 시작 및 끝 좌표를 지정하여 선 정의를 생성할 수 있습니다. x1 및 y1 속성은 시작 좌표를 나타내고 x2 및 y2 속성은 선의 끝 좌표를 나타냅니다. 선을 그리는 방향을 바꾸려면 좌표만 바꾸면 됩니다. 예를 들어 이전 예제를 수정하면 목록 3과 같이 대각선을 만들 수 있습니다.

목록 3. 대각선 만들기

그림 3은 목록 3에 표시된 코드의 출력을 보여줍니다.

그림 3. 대각선

폴리라인 요소

파선은 여러 개의 선으로 구성된 그림입니다. Listing 4에서는 계단의 계단처럼 보이는 그림을 생성하는 예를 보여줍니다.

목록 4에 표시된 코드는 그림 4에 표시된 이미지를 생성합니다.

폴리라인은 points 속성을 사용하고 쉼표로 구분된 X 및 Y 좌표 쌍을 정의하여 생성됩니다. 표시된 예에서 첫 번째 점은 0.40으로 정의되며, 여기서 0은 X 좌표이고 40은 Y 좌표입니다. 그러나 이 세트는 SVG에만 정보를 제공하기 때문에 한 세트의 포인트로는 화면에 이미지를 표시하는 데 충분하지 않습니다. 렌더러가 시작 위치를 지정합니다. 시작점과 끝점(예: points="0.40 40.40")이라는 두 가지 이상의 점 세트가 필요합니다.

단순한 선을 그릴 때와 마찬가지로 선이 반드시 수평 또는 수직일 필요는 없습니다. 이전 예제에서 값을 변경하면 Listing 5와 같이 선으로 이루어진 불규칙한 모양을 얻을 수 있습니다.

목록 5. 들쭉날쭉한 선 만들기

목록 5의 코드는 그림 5에 표시된 이미지를 생성합니다.

그림 5. 들쭉날쭉한 선

직사각형 요소

직사각형을 생성하려면 목록 6에 표시된 대로 너비와 높이를 정의하기만 하면 됩니다.

목록 6. 직사각형 작성하기

목록 6의 코드는 그림 6에 표시된 이미지를 생성합니다.

그림 6. 직사각형

ret 태그를 사용하여 정사각형을 만들 수도 있습니다. 정사각형은 단순히 높이와 너비가 같은 직사각형입니다.

원 요소

원은 목록 7에 표시된 대로 원 중심과 반경의 X 및 Y 좌표를 정의하여 생성됩니다.

목록 7. 원 작성하기

목록 7의 코드는 그림 7에 표시된 이미지를 생성합니다.

그림 7. 원

cx 및 cy 속성은 캔버스를 기준으로 원의 중심 위치를 결정합니다. 반경은 원 너비의 절반이므로 결정 시 이미지의 전체 너비는 지정한 값의 2배가 된다는 점을 명심하세요.

타원 요소

기본적으로 타원은 목록 8에 표시된 것처럼 코드에 지정된 두 개의 반지름이 있는 원입니다.

목록 8. 타원 만들기

목록 8의 코드는 그림 8에 표시된 이미지를 생성합니다.

그림 8. 타원

이 경우 cx 및 cy 속성은 캔버스를 기준으로 중심 좌표도 정의합니다. 그러나 타원의 경우 rx 및 ry 속성을 사용하여 X축에 대해 하나의 반경을 정의하고 Y축에 대해 두 번째 반경을 정의합니다.

다각형 요소

다각형은 최소한 세 개의 변을 포함하는 기하학적 도형입니다. Listing 9에서는 간단한 삼각형을 생성한다.

목록 9. 삼각형 만들기

목록 9의 코드는 그림 9에 표시된 이미지를 생성합니다.

그림 9. 삼각형

폴리라인 요소 작업과 마찬가지로 폴리곤은 포인트 속성을 사용하여 X 및 Y 좌표 쌍을 정의하여 생성됩니다.

X축과 Y축을 따라 좌표 쌍을 추가하면 면 개수에 제한 없이 다각형을 만들 수 있습니다. 예를 들어, 이전 예제의 코드를 수정하면 목록 10과 같이 4면 다각형을 만들 수 있습니다.

목록 10. 4면 다각형 만들기

목록 10에 표시된 코드는 그림 10에 표시된 이미지를 생성합니다.

그림 10. 4면 다각형

다각형 태그를 사용하면 복잡한 모양의 기하학적 모양을 만들 수도 있습니다. 목록 11에서는 별 그림을 만듭니다.

목록 11. 별 만들기

목록 11에 표시된 코드는 그림 11에 표시된 이미지를 생성합니다.

그림 11. 별 다각형

경로 요소

경로 요소는 모든 그리기 요소 중에서 가장 복잡하므로 일련의 특수 명령을 사용하여 임의의 그림을 만들 수 있습니다. 경로 요소는 표 2에 나열된 명령을 지원합니다.

표 2. 경로 요소에서 지원되는 명령

이러한 명령은 대문자 또는 소문자로 사용할 수 있습니다. 명령이 대문자로 지정되면 절대 위치 지정이 적용됩니다. 소문자 명령을 사용하면 상대 위치 지정이 적용됩니다. 모든 명령의 사용 예를 제공하는 것은 이 문서의 범위를 벗어납니다. 그러나 다음은 이러한 명령 사용의 기본 사항을 보여주는 몇 가지 예입니다.

경로 요소를 사용하면 이 문서의 이전 예제에서 간단한 기하학적 모양을 만들 수 있습니다. 목록 12에서는 path 요소를 사용하여 정삼각형을 만듭니다.

목록 12. 경로 요소를 사용하여 삼각형 만들기

목록 12에 표시된 코드는 그림 12에 표시된 이미지를 생성합니다.

그림 12. 경로 요소를 사용하여 생성된 삼각형

명령 목록은 d 속성을 사용하여 정의됩니다. 이 예에서는 점으로 이동 명령(M150 0)으로 정의된 좌표 X 150 및 Y 0이 있는 점에서 그리기가 시작됩니다. 그런 다음 명령을 사용하여 점(L75 200)까지 선을 그립니다. 좌표 X = 75, Y = 200인 점에 선을 그립니다. 그 후 점에 선을 그리는 또 다른 명령을 사용하여 또 다른 선을 그립니다(L225 200). 마지막으로 스냅(Z) 명령을 사용하여 패턴을 닫습니다. 경로를 닫으려면 정의에 따라 현재 위치에서 도면의 시작점(이 경우 좌표가 X = 150, Y = 0인 점)까지 선을 그리기 때문에 Z 명령에는 좌표가 수반되지 않습니다.

주어진 예의 목적은 개념을 보여주기 위한 것이었습니다. 일반 삼각형만 생성해야 한다면 다각형 태그를 사용하는 것이 더 좋습니다.

경로 요소의 진정한 힘은 목록 13에 표시된 것처럼 사용자 정의 모양을 생성하는 기능입니다. 이 예는 W3C(World Wide Web Consortium) 문서에서 가져온 것입니다. 확장 가능한 벡터 그래픽(SVG) 1.1(2판)(섹션 참조).

목록 13. 경로 요소를 사용하여 사용자 정의 모양 만들기

목록 13에 표시된 코드는 그림 13에 표시된 이미지를 생성합니다.

그림 13. 경로 요소를 사용하여 생성된 사용자 정의 모양

경로 요소는 다이어그램 및 구불구불한 선과 같은 복잡한 디자인을 만드는 데 사용할 수 있습니다. 제공된 예에서는 여러 경로 요소를 사용합니다. 그림을 만들 때 SVG 루트 태그에 있는 하나의 그림 요소로 제한되지 않습니다.

필터 및 그라디언트

위의 많은 예에서 사용된 기본 CSS 스타일 외에도 SVG 그래픽은 필터 및 그라데이션 사용도 지원합니다. 이 섹션에서는 SVG 이미지에 필터와 그라디언트를 적용하는 방법을 알아봅니다.

필터

필터를 사용하여 SVG 이미지에 특수 효과를 적용할 수 있습니다. SVG는 다음 필터를 지원합니다.

  • 페블렌드
  • feColorMatrix
  • feComponentTransfer
  • fe복합
  • feConvolveMatrix
  • fe확산조명
  • feDisplacementMap
  • 페플러드
  • feGaussianBlur
  • fe이미지
  • feMerge
  • fe형태학
  • fe오프셋
  • 페스페큘러라이팅
  • 태아
  • fe난기류
  • fe먼빛
  • fePointLight
  • feSpotLight

목록 14에서는 직사각형에 적용되는 그림자 효과를 만듭니다.

목록 14. 직사각형에 그림자 효과 만들기

목록 14에 표시된 코드는 그림 14에 표시된 이미지를 생성합니다.

그림 14. 직사각형의 그림자 효과

필터는 def 요소("정의"의 약어) 내부에 정의됩니다. 이 예의 필터에는 식별자(id) "f1"이 할당됩니다. 필터 태그 자체에는 X 및 Y 좌표는 물론 필터의 너비와 높이를 정의하는 속성이 있습니다. 필터 태그 내에서 필수 필터 요소를 사용하고 해당 속성을 원하는 값으로 설정합니다.

필터가 정의되면 에 표시된 대로 필터 속성을 사용하여 필터를 특정 도면과 연관시킵니다. url 값을 필터에 할당된 id 속성 값으로 설정합니다.

그라데이션

구배한 색상에서 다른 색상으로의 점진적인 전환을 나타냅니다. 그라디언트에는 선형과 방사형의 두 가지 주요 유형이 있습니다. 적용되는 그라디언트 유형은 사용하는 요소에 따라 결정됩니다. 다음 예에서는 선형 및 방사형 그래디언트를 타원에 적용하는 방법을 보여줍니다.

목록 15에서는 선형 그라데이션을 사용하여 타원을 만듭니다.

목록 15. 선형 그라데이션을 사용하여 타원 만들기

목록 15에 표시된 코드는 그림 15에 표시된 이미지를 생성합니다.

그림 15. 선형 그래디언트가 있는 타원

목록 16에서는 방사형 그라데이션을 사용하여 타원을 만듭니다.

목록 16. 방사형 그라데이션으로 타원 만들기

목록 16에 표시된 코드는 그림 16에 표시된 이미지를 생성합니다.

그림 16. 방사형 그라데이션이 있는 타원

필터와 같은 그라데이션은 def 요소 내에 정의됩니다. 각 그라데이션에는 식별자(id)가 할당됩니다. 색상과 같은 그라데이션 속성은 중지 요소를 사용하여 그라데이션 태그 내부에 설정됩니다. 그림에 그라디언트를 적용하려면 채우기 속성의 url 값을 원하는 그라디언트의 식별자(id)로 설정하세요.

텍스트 및 SVG

목록 17에 표시된 대로 기본 기하학적 모양을 만드는 것 외에도 SVG를 사용하여 텍스트를 생성할 수도 있습니다.

목록 17. SVG를 사용하여 텍스트 만들기
사랑해요 SVG

목록 17에 표시된 코드는 그림 17에 표시된 이미지를 생성합니다.

그림 17. SVG로 생성된 텍스트

이 예에서는 텍스트 요소를 사용하여 I love SVG 문장을 만듭니다. 텍스트 요소를 사용할 때 표시되는 실제 텍스트는 여는 텍스트 요소와 닫는 텍스트 요소 사이에 있습니다.

다양한 축을 따라, 심지어 경로를 따라 텍스트를 표시할 수도 있습니다. 목록 18에서는 텍스트가 호 모양의 경로로 표시됩니다.

목록 18. 호 모양 경로를 따라 텍스트 작성하기
나는 SVG를 좋아한다 나는 SVG를 좋아한다

목록 18에 표시된 코드는 그림 18에 표시된 이미지를 생성합니다.

그림 18. 호 모양 경로를 따라 배치된 텍스트

이 예에서는 추가 XML 네임스페이스 xlink 를 SVG 루트 태그에 추가합니다. 텍스트를 호화하는 데 사용되는 경로는 def 요소 내부에 생성되므로 경로 자체는 도면에서 렌더링되지 않습니다. 표시 텍스트는 xlink 네임스페이스를 사용하여 원하는 경로의 ID를 참조하는 textPath 요소 내에 중첩됩니다.

다른 SVG 그래픽과 마찬가지로 텍스트에 필터와 그라디언트를 적용할 수도 있습니다. 목록 19에서는 텍스트에 필터와 그라데이션을 적용합니다.

목록 19. 필터와 그라데이션을 사용하여 텍스트 만들기
나는 SVG를 좋아한다 나는 SVG를 좋아한다

목록 19에 표시된 코드는 그림 19에 표시된 이미지를 생성합니다.

그림 19. 필터와 그라데이션이 적용된 텍스트

웹 페이지에 SVG XML 코드 추가

SVG XML이 생성되면 여러 가지 방법으로 HTML 페이지에 포함될 수 있습니다. 첫 번째 방법은 목록 20에 표시된 대로 SVG XML 코드를 HTML 문서에 직접 삽입하는 것입니다.

목록 20. SVG XML을 HTML 문서에 직접 삽입하기
임베디드 SVG

이 방법은 아마도 가장 간단하지만 재사용을 장려하지는 않습니다. SVG XML은 .svg 확장자를 가진 파일로 저장할 수 있습니다. SVG 그래픽을 .svg 파일로 저장하면 embed, object 및 iframe 요소를 사용하여 웹 페이지에 포함할 수 있습니다. 목록 21에는 embed 요소를 사용하여 SVG XML 파일을 삽입하는 코드가 나와 있습니다.

목록 21. embed 요소를 사용하여 SVG XML 파일 포함하기

목록 22에는 object 요소를 사용하여 SVG XML 파일을 포함하는 코드가 나와 있습니다.

목록 22. object 요소를 사용하여 SVG XML 파일 포함하기

목록 23에서는 iframe 요소를 사용하여 SVG XML 파일을 포함하는 코드를 보여줍니다.

목록 23. iframe 요소를 사용하여 SVG XML 파일 포함하기

이러한 방법 중 하나를 사용하면 동일한 SVG 그래픽을 여러 페이지에 포함하고 원본 .svg 파일을 편집하여 업데이트할 수 있습니다.

결론

이 문서에서는 SVG 형식을 사용하여 그래픽을 만드는 기본 사항을 다룹니다. 기본 제공 기하학 요소를 사용하여 선, 직사각형, 원 등과 같은 기본 기하학적 모양을 만드는 방법을 배웠으며, 경로 요소를 사용하여 일련의 명령을 실행하여 복잡한 디자인을 만드는 방법도 배웠습니다. 예를 들어 점으로 이동, 점에 선 그리기, 점에 호 그리기 등이 있습니다. 또한 이 문서에서는 텍스트가 포함된 그래픽을 포함하여 SVG 그래픽에 필터 및 그래디언트를 적용하는 방법과 HTML 페이지에 SVG 그래픽을 포함하는 방법에 대해 설명합니다.

공유하다