Я сделал svg в Illustrator, но теперь я хочу использовать его на веб-сайте/в приложении, но он имеет огромный размер (около 10 МБ), как я могу уменьшить его размер? Мой файл иллюстратора довольно большой, но это потому, что под ним есть некоторые элементы трассировки. В файле также есть большая монтажная область, но при сохранении следует ли удалять элементы трассировки и уменьшать размер монтажной области?
Да, вы должны удалить все лишние элементы, прежде чем сохранять свой svg. И насколько сложна ваша карта? Svg обычно работают лучше всего без градиентов, обтравочных масок или дополнительных эффектов, таких как тени. Если вам нужно сохранить детали, почему бы просто не сохранить для Интернета из Illustrator в формате png?
Я сталкивался с этим несколько раз в Illustrator CC-2014, и в качестве примера я буду использовать приведенное ниже:
Всего несколько форм, цветов и направляющих.
File -> Save As
выбиратьSVG (svg)
После выбора SVG появится окно выбора, поэтому выберите SVG Code...
:
Код будет либо выводиться в редакторе кода по умолчанию, либо открывать файл .txt:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.0.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 713 956" enable-background="new 0 0 713 956" xml:space="preserve">
<g id="Layer_1">
<path fill="#F1F2F2" stroke="#000000" stroke-miterlimit="10" d="M472.5,359.6c-82,0-148.5-66.5-148.5-148.5
c0-16.7,2.8-32.8,7.9-47.9c-9.4-1.1-18.9-1.6-28.5-1.6c-138.9,0-251.5,112.6-251.5,251.5s112.6,251.5,251.5,251.5
s251.5-112.6,251.5-251.5c0-25.1-3.7-49.3-10.5-72.2C523.1,352.9,498.6,359.6,472.5,359.6z"/>
</g>
<g id="Layer_2">
<circle fill="#E6E7E8" stroke="#000000" stroke-miterlimit="10" cx="488.3" cy="638.9" r="148.5"/>
</g>
<g id="Layer_3">
</g>
</svg>
Если вы заметили из приведенного выше кода, у меня есть три слоя, и они Layer_1
, Layer_2
и Layer_3
. В этом случае он не выводил направляющие, но иногда я видел это, как id="guide"
будто припоминаю.
Я бы сократил код до этого:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 713 956" enable-background="new 0 0 713 956" xml:space="preserve">
<g id="Layer_1">
<path fill="#F1F2F2" stroke="#000000" stroke-miterlimit="10" d="M472.5,359.6c-82,0-148.5-66.5-148.5-148.5
c0-16.7,2.8-32.8,7.9-47.9c-9.4-1.1-18.9-1.6-28.5-1.6c-138.9,0-251.5,112.6-251.5,251.5s112.6,251.5,251.5,251.5
s251.5-112.6,251.5-251.5c0-25.1-3.7-49.3-10.5-72.2C523.1,352.9,498.6,359.6,472.5,359.6z"/>
</g>
<g id="Layer_2">
<circle fill="#E6E7E8" stroke="#000000" stroke-miterlimit="10" cx="488.3" cy="638.9" r="148.5"/>
</g>
</svg>
и вышеупомянутый SVG может вызываться как изображение в ваших файлах.
Это один из способов сделать это, но я научился и тестировал другой. В своих XHTML-файлах я обрезаю его до самого SVG следующим образом:
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path fill="#F1F2F2" stroke="#000000" stroke-miterlimit="10" d="M472.5,359.6c-82,0-148.5-66.5-148.5-148.5
c0-16.7,2.8-32.8,7.9-47.9c-9.4-1.1-18.9-1.6-28.5-1.6c-138.9,0-251.5,112.6-251.5,251.5s112.6,251.5,251.5,251.5
s251.5-112.6,251.5-251.5c0-25.1-3.7-49.3-10.5-72.2C523.1,352.9,498.6,359.6,472.5,359.6z"/>
<circle fill="#E6E7E8" stroke="#000000" stroke-miterlimit="10" cx="488.3" cy="638.9" r="148.5"/>
</svg>
НО имейте в виду, что после некоторого тестирования я обнаружил, что <svg>
тег должен быть заключен внутри файла <div>
. Делая это таким образом, я экономлю код, и я могу легко анимировать его таким образом.
Результат в Хроме:
джуджа
АмелияBR