Advent Calendar 3æ¥ç®:SVGç»åã1ãããã¤ãã§ãåããã¤ã¨ããè¡ï¼
ãã㯠GraphicalWeb (CSS, SVG, WebGL etc) Advent Calendar 2012 - Adventar ã¸ã®åå ã®è¨äºã§ãã
3æ¥ç®ã®ä»æ¥ã¯ç§ id:rikuo ãSVGç»åãã¡ã¤ã«ã®è»½éåãã¯ããã¯ãåãä¸ãã¦ã¿ã¾ãã
ã¡ãã£ã¨é·ããªã£ã¦ãã¾ã£ãã®ã§ãã注æãã ããã
ã¯ããã«ãSVGã¨ã¯ï¼
ã¾ãå§ãã«ãSVGã¨ã¯ä½ãï¼ã®ç°¡åãªèª¬æã§ãã
SVGã¨ã¯Scalable Vector Graphicsï¼ã¹ã±ã¼ã©ãã«ãã¯ã¿ã¼ã°ã©ãã£ãã¯ã¹ï¼ã®ç¥ã§ãXMLãåºç¤ã«æ¸ãããç»åè¨è¿°è¨èªãã¾ãã¯ãã¯ã¿ã¼ç»åãã¡ã¤ã«ã®ãã¨ã§ããç»åãã¡ã¤ã«ã¨ããã¨ãJPEGãGIFãPNGã¾ãBMPãªã©ã¯ããç¥ããã¦ãã¾ããããããã®ç»åã¯ãã¯ã»ã«ï¼ãããï¼ãã¨ã«è²ã表ç¾ãããã®ã§ãç·ãã¦ã©ã¹ã¿ã¼ï¼ããããããï¼ç»åã¨å¼ã°ãã¦ãã¾ãã
対ãã¦SVGã¯åº§æ¨ãå³å½¢ã§æ±ããããæ¡å¤§ã»ç¸®å°ã«å¼·ãã§ãã
ベクター画像とラスター画像比較のサンプルページ
ãããã¯ãã¯ã¿ã¼ç»åãã¨ããè¨ãæ¹ãããããã¸ã§æ²ç·ããããã¸çµµãã®æ¹ãåãããããããããã¾ãããã
èªç¥åº¦ã¯ãã¾ãã¡ã ãã©å®ã¯å¤ãè¦æ ¼
ãããªSVGã§ããæ£ç´ç¥ããªã人ã¯å¤ãã¨æãã¾ããããããè¦æ ¼ã¨ãã¦ã¯ããªãå¤ã
Scalable Vector Graphics - Wikipedia
http://ja.wikipedia.org/wiki/Scalable_Vector_Graphics
- 2001å¹´9æ4æ¥ - SVG 1.0 ã W3C å§åã¨ãªã
- 2003å¹´1æ14æ¥ - SVG 1.1 ã W3C å§åã¨ãªã
- 2003å¹´1æ14æ¥ - SVG Tiny 㨠SVG Basic ï¼ã¢ãã¤ã« SVG ãããã¡ã¤ã«ï¼ã W3C å§åã¨ãªã
- 2008å¹´12æ22æ¥ - SVG Tiny 1.2 ã W3C å§åã¨ãªã
- 2011å¹´8æ16æ¥ - SVG 1.1 (Second Edition) ã W3C å§åã¨ãªã
10年以ä¸åã«W3Cå§åã«ãªã£ã¦ãããã§ãããã
ãã ãInternet Explorerãé·ããæ¨æºã§å¯¾å¿ãã¦ããªãã£ããã¨ããã£ã¦ããè¦æ ¼ã¨ãã¦è¦å®ããã¦ãã¦ãç¾å®åé¡ã¨ãã¦ãªããªã使ãã«ããç¶æ³ã§ããã
è¿å¹´è¦ç´ããã¦ããSVG
ãããè¿å¹´ã¯å¾ã
ã«SVGãè¦ç´ããã¤ã¤ããã¾ãã
ãã®è¦å ã¨ãã¦ã¯ã2011å¹´ã«ãªãªã¼ã¹ãããInternet Explorer 9以éãSVGãæ¨æºã§å¯¾å¿ããããã«ãªã£ããã¨ãã¾ãæºå¸¯ç«¯æ«ãªã©ã§ãã£ã¹ãã¬ã¤ã®é«è§£å度åãé²ã¿ããã®æºå¸¯ç«¯æ«ã§ãã³ãã¢ã¦ãã§ï¼æã§åºããåä½ï¼ç»é¢ãæ¡å¤§ããããã¨ç»é¢ãç»åã大ããæ¡å¤§ãã¦è¦ãå ´é¢ãå¢ãã¦ãããã¨ãããã¾ãã
ãã®éãã©ã¹ã¿ã¼ç»åã ã¨ã©ããã¦ã輪éããã±ããããã¶ã®ã¶ãç®ç«ã£ãããã¦ãã¾ããã¨ããã£ã¦ã解å度ãæ°ã«ããã«ä½¿ãããã¯ã¿ã¼ç»åã®éè¦ãé«ã¾ã£ã¦ãã¾ãã
ä¾ãã° Apple社ã®ãµã¤ãã¯SVGãè¦æè¦æã«åãå
¥ãã¦ãã¾ããã
ãããé¨åãæ¡å¤§ããã¨ãã
è«ç¼é¡ã®é¨åãSVGã§ãããµãã¼ããã®åã¯PNGç»åã§ãã
ãã®ããã«æ¡å¤§ãã¦ããã¬ã¤ãªã®ãSVGã®ç¹å¾´ã®ä¸ã¤ã§ãã
ãã IE8以ä¸ã¯ä¾ç¶SVGã«ã¯æªå¯¾å¿ã§ãããã¹ãã¼ããã©ã³ã®åéã§ã¯Android OSãæ¨æºã§å¯¾å¿ããã®ã¯ 3.x以éã¨ãã¾ã ã¾ã ã¬ã¬ã·ã¼ãªç«¯æ«ãæ°ã«ããç°¡åã«ä½¿ããã¨ããç¶æ³ã§ã¯ããã¾ããããå¾ã
ã«ç°å¢ãæ´ã£ã¦ãã¤ã¤ãããã¨ããã®ã¯ç¢ºãã§ãã
SVGã®å¶ä½ã«å½ãã£ã¦
SVGã¯XMLãåºç¤ã«ãã¦ããããããã¹ãã¨ãã£ã¿ã§ãç·¨éã§ãããã®ã®ããããã«è¤éãªã¤ã©ã¹ããå³è¡¨ãããã¹ãã¨ãã£ã¿ã§æãã®ã¯é£ããä½ããã®ãªã¼ãµãªã³ã°ãã¼ã«ã使ããã¨ã«ãªãã¾ãã
代表çãªãã®ã¯ãã®2ã¤ã®ããã¼ã½ããã
Adobeã®Illustratorã¨Inkscapeãåè
ã¯åä½ã§è³¼å
¥ããã¨8ä¸åç¨åº¦ããã½ãããå¾è
ã¯ãªã¼ãã³ã½ã¼ã¹ã®ã½ããã§ããInkscapeãé
åçã§ã¯ããã®ã§ãããã¡ãã£ã¨ãé«ãã¨ã¯è¨ãããã¯Adobeã®è£½åã使ããããããã«å種æ©è½ãæ´åããã¦ããã®ã§å®éå¶ä½ããã«å½ãã£ã¦ã¯ãIllustratorãç¨ãããã¨ãå¤ãã®ã§ã¯ãªãã§ããããï¼
ãããIllustratorã使ã£ã¦å¶ä½ããéãæ°ãä»ããªãã¨SVGã«æ¸ãåºããæã«ç¡é§ã«ãã¡ã¤ã«ãµã¤ãºãå¤ããªã£ã¦ãã¾ããã¨ãããããã¾ããæç·ã®ç°å¢ã§ã¯ããã¼ããã³ãã®æ代ãæ¥ã¦ä¹
ããã§ãããæè¿ã§ã¯æºå¸¯ç«¯æ«ã§ã®å©ç¨ãå¤ãå¿«é©ãªãããä½é¨ã®ããã«ã§ããã°ä¸è¦ãªãã¡ã¤ã«ãµã¤ãºã¯æãããã§ãããã
ã§ã¯ãã©ã®ããã«ããã°ããã§ããããï¼
â¦â¦ã¨ãããã¨ã§åç½®ããããªã¼ãé·ããªã£ã¦ãã¾ãã¾ããããä»åã¯ä¸»ã«Adobe Illustratorã§å¶ä½ããã¤ã©ã¹ããå³è¡¨ãªã©ãSVGã«ããéã«æ³¨æããç¹ãã¾ãä½ç»ããæç¹ã§ãªãã¹ã軽éåããæ¹æ³ãªã©ãç´¹ä»ãã¦ããã¾ãã
ãããããããããæ¬é¡ã§ãã
軽éåãã¼ã«ãæ´»ç¨ãã
ã¾ãæåã«ç´¹ä»ããã®ã¯èªåã§è»½éåãã¦ããããã¼ã«
ããããç¡é§ãªã³ã¡ã³ãã¢ã¦ãã®åé¤ãã使ããã¦ããªãIDã®åé¤ã座æ¨æå®ã®æé©åå¦çãªã©ãè¡ãã¾ãã
IllustratorããåºåããSVGãã¡ã¤ã«ã«å¯¾ãã¦é©ç¨ã§ããã®ã¯ãã¡ããã§ãããç¹ã«åè
ã®ãã¼ã«ã¯Inkscapeã«ã¯æ¨æºã§æè¼ããã¦ãããä¿åããéã«ããã¡ã¤ã«ã®ç¨®é¡ããã
ãæé©åSVGï¼*.SVGï¼ããé¸æããã¨
ãæé©åSVGåºåã
ã¨ããscourã使ã£ãåºåãã¤ã¢ãã°ã表示ããã¾ãã
svgzãgzipå§ç¸®ã使ã
SVGç»åã®æ¡å¼µåã¯ã" .svg "ã§ããã" .svgz "ã¨ããå½¢å¼ãããã¾ããããã¯ç°¡åã«èª¬æããã¨ãSVGç»åãgzipå§ç¸®ãã¦æ¡å¼µåã" .svgz "ã«å¤ãããã®ã§ããä¸è¿°ã®éããSVGã¯XMLãåºç¤ã«ãããã®ãªã®ã§ gzipå§ç¸®ã¯é常ã«å¹æçã§ãã
æ¹æ³ã¨ãã¦ã¯ã
ãå¥åã§ä¿åããã
ããã¡ã¤ã«ã®ç¨®é¡ãã§
ãSVGå§ç¸®ï¼*.SVGZï¼ããé¸æãã¾ãã
ä¾ãã° 先日描いたヘビのイラスト ã¯
Carpet python by rikuo is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at http://www.flickr.com/photos/brisbanecitycouncil/5278832161/.
IllustratorããSVGã§åºåããã¨1877KBã ã£ãã®ã«å¯¾ããSVGZã§ã¯371KBã«ãªãã¾ããã
Carpet_python.svg 1877KB
Carpet_python.svgz 371KB
ãã¡ã¤ã«ãµã¤ãºãæ¸ããã®ã«ã¯æãå¹æçãªææ³ã§ãããããã¾ã§å§ç¸®ã¨ãããã¨ã§å
ã
ã®ãã¡ã¤ã«ãµã¤ãºãæ¸ãããã¨ãç¡é§ã§ã¯ããã¾ããããã¤ã³ã©ã¤ã³ã§SVGè¦ç´ ã¨ãã¦è¨è¿°ããå ´åãªã©å§ç¸®ã§ããªãç¶æ³ãããã¾ãã
IllustratorããSVGãæ¸ãåºãéã®ãªãã·ã§ã³é¸æ
IllustratorããSVGãæ¸ãåºãéã«ã¯æ§ã
ãªãªãã·ã§ã³ãé¸ã¹ã¾ãããããã®ä¸»è¦ãªé
ç®ã解説ãã¦ããã¾ãã
SVGãããã¡ã¤ã«ã¯ãSVG 1.1ããé¸æ
軽éåã¨ã¯ãã¾ãé¢ä¿ãªãé
ç®ã§ãããSVGãããã¡ã¤ã«ã®é¸æã®é¨åã
ããã¯ãSVG 1.1ããé¸æããã®ãããã§ããããSVG TinyãBasicã¨ã¯æºå¸¯é»è©±ãªã©ã®åªä½ã§ä½¿ãããç¶æ³ãç®çã¨ãã¦çå®ãããè¦æ ¼ã§ä½¿ããæ©è½ãå°ãªããªã£ã¦ãã¾ãããã®ãã Tiny ã«å¯¾ã㦠SVG 1.1 ã®ãã¨ã¯ SVG fullã¨å¼ã°ãã¦ãã¾ãã
ãã Tinyãªã®ã¯ããã¾ã§ä»æ§ä¸ã®åé¡ã§ããã¨è¨ã£ã¦fullã«ã¯å¯¾å¿ãã¦ããªãã Tiny/Basicã«ã ãã¯å¯¾å¿ã§ãã¦ããç°å¢ãããã»ã©ãããï¼ã¨ããã¨ããã§ããªãããããé¸ã¶ã¡ãªããã¯ãã¾ãããã¾ããã
ãã©ã³ãã®è¨å®
æåã¯ãSVGãã«ãã¦ããµãã»ããã¯ããªãï¼ã·ã¹ãã ãã©ã³ãã使ç¨ï¼ããããã§ãããããã æåå¨ãã¯ãã©ã¦ã¶éã§ã®å·®ç°ãå¤ã
ããããï¼ç¹ã«ç¸¦æ¸ãï¼ã容éãå¢ãã¦ãã¾ãã¾ãããã£ãã¢ã¦ãã©ã¤ã³åãã¦ãã¾ãã®ãä¸ã¤ã®æã§ã*2ã
ç»åï¼åç §æ¹æ³
ãã¡ãã¯ãåãè¾¼ã¿ããé¸æããã¨ãã®ç»åãBase64ã¨ã³ã³ã¼ããã¦ãã¾ãããã¡ã¤ã«ãµã¤ãºãè¥å¤§åãã¦ãã¾ãã¾ããããªã³ã¯ããé¸æãã¾ãããã
Illustratorã®ç·¨éæ©è½ã¯ä¿æããªã
å
ãã¼ã¿ã¯Illustratorå½¢å¼ã§æå
ã«ä¿ç®¡ããWebã§å
¬éããå ´åã«ã¯ä½è¨ãªæ
å ±ãåã£ã¦ããã®ãããã§ãããã
CSSããããã£ã¯ãã¹ã¿ã¤ã«è¦ç´ ã
ããããã¯ã詳細ãªãã·ã§ã³ããã¯ãªãã¯ãã¦ããã«ç´°ããè¨å®ãã¦ããã¾ãã
CSSããããã£ã¯
- ãã¬ã¼ã³ãã¼ã·ã§ã³å±æ§
- ã¹ã¿ã¤ã«å±æ§
- ã¹ã¿ã¤ã«å±æ§ï¼å®ä½åç §ï¼
- ã¹ã¿ã¤ã«è¦ç´
ã®4種é¡ãããã¾ãã
(X)HTMLã¨CSSã®ç¥èãç¡ãã¨ãªããªãç解ãé£ããã¨æãã®ã§ããããã®è¨å®ãå
¨ä½ã®ãã¡ã¤ã«ãµã¤ãºã«å¤§ããå½±é¿ãããéè¦ãªé¸æã§ãã®ã§ã詳ãã解説ãã¦ããã¾ãã
CSSããããã£ã¨ã¯ããããã©ãããäºãã¨ããã¨ãä¾ãã°ããããå³å½¢ããã£ãã¨ãã¾ãã
100ãã¯ã»ã«Ã100ãã¯ã»ã«ã®é åã®ä¸å¤®ã50ãã¯ã»ã«ã®ã¨ãããä¸å¿ã«åå¾40ãã¯ã»ã«ã®æ£åãé
ç½®ãã¾ããããã®ã¨ãCSSããããã£ã®ããããã§ã©ã®ããã«å¤åãããè¦ã¦ã¿ã¾ãããã
ãã¡ãã®ãã¼ã¸ã«å種è¨å®ãã¨ã®ã½ã¼ã¹ã表示ããã®ã§ããã
CSSプロパティの検証ページ 1
ããã§ã軽ãç´¹ä»ã
ãã¬ã¼ã³ãã¼ã·ã§ã³å±æ§
ã¡ãªã¿ã«åºåã¯Adobe Illustrator CS5.1ã§ãã
<?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="ã¬ã¤ã¤ã¼_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve"> <circle fill="#69EBA6" stroke="#0045A6" stroke-width="7" stroke-miterlimit="10" cx="50" cy="50" r="40"/> </svg>
è²ã ã¨ãããããã§ãããå¿ è¦ãªã¨ããã ãåãåºãã¨
<circle fill="#69EBA6" stroke="#0045A6" stroke-width="7" stroke-miterlimit="10" cx="50" cy="50" r="40"/>
åãæãæå®ã¯ãã®é¨åãããããã解説ãã¦ããã¾ãããã
circleè¦ç´ ã¯æ£åãæç»ãã¾ãã
cxå±æ§ãx軸ã®åº§æ¨ãã¤ã¾ã横軸ã®åã®ä¸å¿ç¹ããã§ã¯å
¨ä½ã100ãªã®ã§50ã¯ä¸å¤®ã§ãã
cyå±æ§ã¯y座æ¨ã§ãã50ã§ãã¯ãä¸å¤®ã
rå±æ§ã¯åã®åå¾ã§ãã
ããã¾ã§ã¯åã®ä½ç½®ã¨å¤§ããã®æå®ã§ãä»ã®CSSããããã£è¨å®ã¨å
±éã®é¨åã§ãã
ä»åº¦ã¯ãã®åã®å¡ãã¨ç·ã®è²ãè¨å®ãè¨è¿°ãã¦ããã¾ãã
fillå±æ§ã¯å¡ãã®è¨å®ã§ #69EBA6 â
strokeå±æ§ã¯ç·ã®è¨å® #0045A6 â
strock-widthå±æ§ã¯ç·ã®å¤ªã
stroke-miterlimitå±æ§ã¯ç·ã®è§ã®æ±ãã®æå®ã§ãã
â¦â¦ã¨ããã¨ããã
ã§ã¯ç¶ãã¦ã¹ã¿ã¤ã«å±æ§
ã¹ã¿ã¤ã«å±æ§
ä»ã®é¨åã¯å ±éãªã®ã§ãcircleè¦ç´ ã ãããã¯ã¢ããã
<circle style="fill:#69EBA6;stroke:#0045A6;stroke-width:7;stroke-miterlimit:10;" cx="50" cy="50" r="40"/>
cxå±æ§ãcyå±æ§ãrå±æ§ã¯åãã§ããã
ä»åº¦ã¯styleå±æ§ã使ã£ã¦ãã¾ããåãå¡ãã®æå®ãªãã§ãããfillå±æ§ã§ãªãã¹ã¿ã¤ã«ã·ã¼ãã§fillããããã£ã使ã£ã¦ãã¾ãã
ã¹ã¿ã¤ã«å±æ§ï¼å®ä½åç §ï¼
ã¹ã¿ã¤ã«å±æ§ï¼å®ä½åç §ï¼ã¯èª¬æããããããã®ã§ãçç¥ã
ã¹ã¿ã¤ã«è¦ç´
<style type="text/css"> <![CDATA[ .st0{fill:#69EBA6;stroke:#0045A6;stroke-width:7;stroke-miterlimit:10;} ]]> </style> <circle class="st0" cx="50" cy="50" r="40"/>
styleè¦ç´ ã«CDATAã»ã¯ã·ã§ã³ãããã¾ããããããé¤ãã°HTMLãªã©ã§é¦´æã¿ã®ããå½¢æ
ãããªãã§ããããã
circleè¦ç´ ã«ã¯classå±æ§ãæå®ãã¦ããããã¨å¡ããç·ã®æå®ã¯ã¹ã¿ã¤ã«å±æ§ã¨ä¸ç·ã§ããã
以ä¸ãåè¨å®ã®éãã§ãã
ã§ã¯ãã¡ã¤ã«ãµã¤ãºè»½éåã®è¦³ç¹ããããã¨ãã©ã®è¨å®ãããã®ã§ããããï¼
ä»åº¦ã¯ãããªç»åãä½ã£ã¦ã¿ã¾ãããããã¯åã196å é
ç½®ããå
¨ã¦åãå¡ãã¨ç·ã®è¨å®ã§ãã
ãã®ã¨ãããããCSSããããã£ãã¨ã®è¨å®ãå¤ãã¦æ¸ãåºãã¨
ãã¬ã¼ã³ãã¼ã·ã§ã³å±æ§ | ã¹ã¿ã¤ã«å±æ§ | ã¹ã¿ã¤ã«å±æ§ï¼å®ä½åç §ï¼ | ã¹ã¿ã¤ã«è¦ç´ |
---|---|---|---|
18.4 KB | 19.0 KB | 10.6 KB | 10.3 KB |
ï¼è©³ããæ¯è¼ã¯ãã¡ãã§è¡ã£ã¦ãã¾ã CSSプロパティの検証ページ 2ï¼
ã¨ãªãã¾ããã
ããã¯ããã¬ã¼ã³ãã¼ã·ã§ã³å±æ§ãããã¹ã¿ã¤ã«å±æ§ãã¯
<circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="4.5" r="2.5"/> <circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="11.5" r="2.5"/> <circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="18.5" r="2.5"/> <circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="25.5" r="2.5"/> <circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="32.5" r="2.5"/> <circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="39.5" r="2.5"/> <circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="46.5" r="2.5"/> <circle fill="#69EBA6" stroke="#0045A6" stroke-miterlimit="10" cx="4.5" cy="53.5" r="2.5"/> ï¼ ï¼
ã¨ããããã®è¦ç´ ã«å¡ããç·ã®æå®ãè¨è¿°ãã¦ããã®ã«å¯¾ãã
ãã¹ã¿ã¤ã«å±æ§ï¼å®ä½åç
§ï¼ããã¹ã¿ã¤ã«è¦ç´ ãã¯
<style type="text/css"> <![CDATA[ .st0{fill:#69EBA6;stroke:#0045A6;stroke-miterlimit:10;} ]]> </style> <circle class="st0" cx="4.5" cy="4.5" r="2.5"/> <circle class="st0" cx="4.5" cy="11.5" r="2.5"/> <circle class="st0" cx="4.5" cy="18.5" r="2.5"/> <circle class="st0" cx="4.5" cy="25.5" r="2.5"/> <circle class="st0" cx="4.5" cy="32.5" r="2.5"/> <circle class="st0" cx="4.5" cy="39.5" r="2.5"/> <circle class="st0" cx="4.5" cy="46.5" r="2.5"/> <circle class="st0" cx="4.5" cy="53.5" r="2.5"/> <circle class="st0" cx="4.5" cy="60.5" r="2.5"/> <circle class="st0" cx="4.5" cy="67.5" r="2.5"/> <circle class="st0" cx="4.5" cy="74.5" r="2.5"/> <circle class="st0" cx="4.5" cy="81.5" r="2.5"/> ï¼ ï¼
åãå¡ãã¨ç·ã®æå®ã§ããã°ãã¾ã¨ãã¦æå®ã§ããããã§ãã
ãã®ãããç»é¢¨ã«ãããã®ã§ãã*3ã¤ã©ã¹ããå³è¡¨ã®ãããªå ´åããã¹ã¿ã¤ã«è¦ç´ ããé¸æããã¨ãã¡ã¤ã«ãµã¤ãºãæãããã¾ãã
å°æ°ç¹ä»¥ä¸ã®æ¡æ°ãæ¸ãã
SVGã¯å³å½¢ãç·ã座æ¨ã§ç®¡çãã¾ããä¾ãã°ãã®ãããªå³å½¢ã®å ´å
<polyline points="40.842,18.015 177.524,88.732 12.031,180.873 "/>
å¤è§ç·ãªã®ã§polylineè¦ç´ ã使ãããããããè¨è¿°ã«ãªãããã§ããæ°åãããã¤ã並ãã§ãã¦å¤å¥ãã«ããã§ããããããå°ãåããããã解説ããã¨
ï¼SVGã¯åºæ¬çã«å·¦ä¸ãåç¹0ã§ãï¼
<polyline points=" <!-- ç¹Aã®x座æ¨,yåº§æ¨ --> 40.842, 18.015 <!-- ç¹Bã®x座æ¨,yåº§æ¨ --> 177.524, 88.732 <!-- ç¹Cã®x座æ¨,yåº§æ¨ --> 12.031, 180.873 "/>
ã¨ãããã¨ã«ãªãããã§ããç¹A㯠xã40.842ãyã®18.015ã®ä½ç½®ã§ãç¹Bã¯xã177.524ãyã88.732ãç¹Cã¯ï¼ç¥ï¼ãã¨ããã®ã¨ãå°æ°ç¹ä»¥ä¸ã3æ¡ã¾ã§ããã¾ããããããåºåã®éã«è¨å®ããé¨åã§ãã
ãããããã1æ¡ã«ãããã©ããªãã§ããããï¼
<polyline points="40.8,18 177.5,88.7 12,180.9 "/>
1æ¡ã ã¨ãããªãã¾ãã
3æ¡ã®æ°å¤ã«æ¯ã¹ã¦è¨è¿°éãéåæ¸ãã¾ããããããã座æ¨ã¯åå³å½¢ãç·ãªã©å
¨ã¦ã«è¡ãããããå°æ°ç¹ä»¥ä¸ã®æ¡æ°ã®è¦ç´ãã¯å
¨ä½ã®ãã¡ã¤ã«ãµã¤ãºã«å¤§ããªå½±é¿ãä¸ãã¾ãããããå®æã«æ¡æ°ãæ¸ããã¦ãã¾ãã¨æ¡å¤§ããæã«å°ããºã¬ãããã«ãªã£ã¦ãã¾ããã¨ãããã¾ãã
小数点以下の桁数の検証ページ
ä¾ã¨ãã¦ããã®ã¤ã©ã¹ããå°æ°ç¹ä»¥ä¸ã®æ¡æ°ã1æ¡ãã7æ¡ã¾ã§åºåãã¦ã¿ã¾ããã
ãã å
¨ä½ã®ç»åãµã¤ãºã¨ã®å
¼ãåããããã¾ãããå°å·ããç¨éã§ãªãWebã§è¦ãåã§ããã°1ã2æ¡ã§ãååã ã¨æãã¾ããã
ãã®ã¤ã©ã¹ãã®å ´åãæ¡æ°ã®è¨å®ã«ãããã¡ã¤ã«ãµã¤ãºã®å¤åã¯ãã®ãããªæãã«ãªãã¾ãã
å°æ°ç¹ä»¥ä¸ã®æ¡æ°1æ¡ | 3æ¡ | 5æ¡ | 7æ¡ |
---|---|---|---|
37.6 KB | 53.1 KB | 67.9 KB | 82.2 KB |
ãã®ä»ã®é ç®
ãã®ä»ã®é
ç®ã«ã¤ãã¦ã¯èª¬æã¯çç¥ãã¾ããã
è¨å®ã¯ãããããã®ãããªæãã§ããããªã¨ã
以ä¸ã§Illustratorããæ¸ãåºãéã®ãªãã·ã§ã³è¨å®ã®è©±ã¯çµäºã以ä¸ã¯ä½ç»æã«ã§ãã軽éåãã¯ããã¯ã§ãã
ç¡é§ãªã¬ã¤ã¤ã¼ã¯çµ±åãã¦ãã¾ã
ç¡é§ã«ã¬ã¤ã¤ã¼ãæ®ãã¦ããã¨ãã®ããã«
<g id="ã¬ã¤ã¤ã¼_1"> <polyline points="40.842,18.015 177.524,88.732 12.031,180.873 "/> </g>
gè¦ç´ ãã§ãã¦ãã¾ãã¾ãã
gè¦ç´ ã¯HTMLã§ããã¨ããã®divè¦ç´ ã®ãããªãã®ã§ãããèªä½ã¯æç»ãããªãã®ã§ããè¦ç´ ãã¾ã¨ããã®ã«ä¾¿å©ãªãã®ã§ãããããã¦ã¾ã¨ãããã¨ã§JavaScriptããæä½ããããããããå¾ããã®ç®¡çãããã¨ãèããã¨ãã«å¿
è¦ãªã¬ã¤ã¤ã¼ãããã§ãããããä¸å¿
è¦ãªãã®ã§ããã°çµ±åããã®ãããã§ããã
å¿ è¦ã®ãªãã°ã«ã¼ãåã解é¤
ã°ã«ã¼ãåãgè¦ç´ ãä½ããã¾ããã¬ã¤ã¤ã¼ã¨åæ§ã«å¿
è¦ãªå ´åãå¤ãããã§ãããããã§ãªããã°è§£é¤ãã¦ããã¨ããã§ãããã
ã°ã©ãã¼ã·ã§ã³ã¡ãã·ã¥ã¯ä½¿ããªã
SVGã¯Adobe Illustratorã®æ©è½ãå®å
¨ã«åç¾ã§ããããã§ã¯ãªãã®ã§ãã¡ãã·ã¥ãªãã¸ã§ã¯ãã¯æ¸ãåºãã®éã«ã©ã¹ã¿ã©ã¤ãºããã¦ãã¾ãã¾ãããã®ããã¡ãã·ã¥ãªãã¸ã§ã¯ãã¯ä½¿ããªããã¾ãã¯ã©ã¹ã¿ã¼ç»åã¨ãã¦ç¨æãããªã©ã®å¯¾å¿çã«ãªãã¾ãã
ã¡ãªã¿ã«ç¾å¨çå®ä¸ã®SVG 2ã«ã¯ã°ã©ãã¼ã·ã§ã³ã¡ãã·ã¥æ©è½ãæ°ãã«å ããããããã§ãï¼ãã ããã¾ã æªç¢ºå®ï¼ã
è¤åãã¹ã«ã¾ã¨ãã
ç´ç·ã ãã§ãã®ãããªç»åãä½ã£ã¦ã¿ã¾ããã
ãã®ã¨ããSVGã®è¨è¿°ã¯
<polyline class="st0" points="6.1,11 22.7,11.9 35.7,13 "/> <polyline class="st0" points="19.2,1.8 15,28.9 17.3,39.2 "/> <polyline class="st0" points="34.3,41.4 37.1,31.4 7.8,19.1 3.3,30.3 12.5,35.8 27.6,21.9 "/> <polyline class="st0" points="45.4,20.5 44.9,38.1 49.9,39.7 "/> <polyline class="st0" points="70.8,40.6 73.6,28.9 66.3,14.7 "/> <polyline class="st0" points="101,14.4 95.6,9.4 83.6,2.9 "/> ï¼ ï¼
å¤è§ç·ãããããpolylineè¦ç´ ã¨ãã¦è¨è¿°ããã¾ããã
è¤åãã¹ã§å
¨ã¦ã¾ã¨ããã¨ä¸ã¤ã®è¦ç´ ã«ã¾ã¨ã¾ãè¨è¿°ãç°¡æ½ã«ãªãã¾ãã
複合パスの検証ページ
使ãã©ãããé¸ã¶ãã¯ããã¯ã§ã¯ããã®ã§ããã先日描いたヘビのイラスト ã§ã¯ãå
ã®ç»åã1877KBã ã£ãã®ã«å¯¾ããè¤åãã¹ã§ã¾ã¨ããçµæ 1098KBã¾ã§åæ¸ã§ãã¾ããã
Carpet_python.svg 元画像 1877KB
Carpet_python.svg 編集後 1098KB
å¡ããç·ã®æå®ããªãã¸ã§ã¯ãã®éãªãé ãªã©ãé¢é£ããªããªã使ããç¶æ³ã¯é£ããã§ãããä¸å¿ã®å¹æã¯ããæ段ã§ãã
ããªãé·ããªã£ã¦ãã¾ãã¾ããããæ軽ã«ã§ãã軽éåãã¯ããã¯ã¯ãã®ãããã§ããããã
æ¬å½ã¯ããã«å¿ç¨ç·¨ã¨ãã¦ããã¸ã§æ²ç·ãããã«ãã¡ã¤ã«ãµã¤ãºãæãã¦æããï¼ããªã©ã¨ãã£ã話ãæ¸ããã¨æ§æ³ãã¦ããã®ã§ããããã以ä¸é·ããªã£ã¦ãã¾ãã¨èª°ã«ãèªã¾ããªããããªã®ã§ã¾ãã®æ©ä¼ã«ã
ã¾ãããã¾ã§ããã¨ä½æ¥ã³ã¹ãçã«ãè¦åãããcode golfçãªæ¥½ãã¿æ¹ã«ãªã£ã¦ãã¾ãã®ãããã¾ããã
åèãªã³ã¯
ãã®ã¨ã³ããªã¼ãæ¸ãä¸ã§åèã«ããè¨äºãªã©
- SVG女子を90%軽くしたSVG軽量化テク+α #svggirl | KAYAC DESIGNER'S BLOG - デザインやマークアップの話
- ケータイFlashでさくさく動く Illustratorデータの作り方 (2/2):一撃デザインの種明かし(2) - @IT
- ソーシャルゲームデザインで使える!パスを減らして軽量化するアイデア | KAYAC DESIGNER'S BLOG - デザインやマークアップの話
SVGé¢é£ãªã³ã¯
æå¾ã«SVGã«ã¤ãã¦å¦ã¶ãªãåèã«ãªããããªãµã¤ããããã¤ã
SVG実習マニュアル - 無料チュートリアル:グラフィックス
PDFçãé
å¸ããã¦ããããªãåãããããå
容ã§ãã
http://www.hcn.zaq.ne.jp/___/SVG11-2nd/index.html
SVG 1.1 ä»æ§ã®æ¥æ¬èªè¨³ããã¡ããåèã«ãªãã®ã§ããç§ãæåã¯é£ããã¦éä¸ã§æ念ãã¾ãããã§ããä¸ã®ãSVGå®ç¿ããã¥ã¢ã«ããèªã¿ã¤ã¤æ°ã«ãªãé¨åãå°ããã¤èª¿ã¹ã¦ããã¨ç解ããããã£ãã§ããã
スタートアップ SVG:特集|gihyo.jp … 技術評論社
2010å¹´7æã®é£è¼è¨äºã§ã¯ããã¾ãããSVGãã©ããã£ããã®ãã¾ãã©ã®ãããªãã¨ãã§ãããï¼ã¨ããç¹ãã¤ãã¿ããããã¨ã
http://www.h2.dion.ne.jp/~defghi/svgMemo/svgMemo.htm
SVGã¯ä»æ§ãå¦ã¶ã®ãéè¦ãªã®ã§ãããç¾ç¶ãã©ã¦ã¶å¯¾å¿ç¶æ³ãã¾ã¡ã¾ã¡ãªãããããå®è·µãã段éã§ããªãèºãã¨ãããå¤ã
ããã¾ãããã¡ãã®ãµã¤ãã¯ãã®è¾ºãã®ç¹ã§ãå®éåé¡ã©ã®ããã«ãªã£ã¦ããã®ãï¼ãå®ç¨çãªå¯¾å¦æ³ãªã©å
å®ããå
容ã§åèã«ãªãã§ãããã
追è¨
ãã®å¾ã2013å¹´ã®Advent Calendarã§ã¯ä»åãããããã«ç´°ãããã¡ã¤ã«ãµã¤ãºãåãä¸ç´ç·¨ã®ãã¯ããã¯ã解説ããè¨äºãæ¸ããã®ã§èå³ãããæ¹ã¯ãã¡ããæ¯é
SVG画像を1バイトでも削るためのコードゴルフ
><