SVG ֆայլերի կառուցվածքը և օպտիմալացման անհրաժեշտությունը
SVG (Scalable Vector Graphics) ֆայլերը հիմնված են XML ձևաչափի վրա, ինչը նշանակում է, որ դրանք կազմված են տեքստային կոդից։ Այս կոդը նկարագրում է երկրաչափական պատկերներ, ուղիներ, գույներ և տեքստեր։ Քանի որ SVG-ները հաճախ ստեղծվում են գրաֆիկական խմբագրիչների միջոցով, դրանց մեջ հաճախ ներառվում են մեծ քանակությամբ ավելորդ տեղեկություններ։ Այդպիսի տեղեկությունները ներառում են խմբագրիչների հատուկ մետատվյալները, մեկնաբանությունները և չօգտագործվող կոդի հատվածները, որոնք բացարձակապես չեն ազդում պատկերի տեսողական արտապատկերման վրա։
Վեբ կայքերի արագագործության և օպտիմալացման տեսանկյունից SVG ֆայլերի չափսը կարևոր նշանակություն ունի։ Որքան փոքր է ֆայլի չափսը, այնքան արագ է բեռնվում էջը, ինչը դրականորեն է անդրադառնում օգտատերերի փորձառության վրա։ SVG Օպտիմալացնող գործիքը նախատեսված է հենց այս խնդրի լուծման համար. այն մաքրում և սեղմում է SVG կոդը՝ պահպանելով գրաֆիկական պատկերի նախնական տեսքը։
Ինչպես է աշխատում անվտանգ և անկորուստ սեղմումը
Գրաֆիկայի համատեքստում «անկորուստ» (lossless) օպտիմալացումը նշանակում է, որ ֆայլի ծավալը կրճատվում է առանց պատկերի որակի կամ տեսքի որևէ փոփոխության։ Այս գործիքը կիրառում է անվտանգ մաքրման կանոններ, որոնք երաշխավորում են կոդի կառուցվածքային ամբողջականությունը։
Օպտիմալացման ընթացքում կիրառվում են հետևյալ կանոնները.
- Ինչ է հեռացվում. Գործիքը հեռացնում է կոդի մեկնաբանությունները, մետատվյալները, խմբագրիչների անվանատարածքները (namespaces), ատրիբուտների ավելորդ բացատները և չօգտագործվող անվանատարածքները։ Բացի այդ, գույների արժեքները փոխարինվում են դրանց ավելի կարճ համարժեքներով։
- Ինչ է պահպանվում. Գործիքը անփոփոխ է թողնում viewBox ատրիբուտը, տարրերի ID-ները, պիտակներն ու երկրաչափական կառուցվածքը։
- Ինչից է խուսափում գործիքը. Պատկերի տեսքը չաղավաղելու համար օպտիմալացնողը խուսափում է ուղիների (path) վերագրումից, ID-ների վերանվանումից, viewBox-ի հեռացումից և կոորդինատների ճշգրտության կլորացումից։
Գործիքի կիրառման սահմանափակումները և անվտանգությունը
SVG Օպտիմալացնողն ունի որոշակի տեխնիկական և անվտանգային սահմանափակումներ, որոնք անհրաժեշտ է հաշվի առնել աշխատանքի ընթացքում։
- Չափի սահմանափակում. Մուտքագրվող SVG կոդը պետք է լինի որոշակի նիշերի սահմանաչափից ցածր։ Եթե կոդը գերազանցում է թույլատրելի առավելագույն չափը, համակարգը ցույց կտա հետևյալ հաղորդագրությունը. «Այս SVG-ն չափազանց մեծ է այս գործիքի համար: Այն պետք է լինի
{max}նիշից պակաս:»։ - Ժամանակի սահմանափակում. Օպտիմալացման գործընթացը չպետք է տևի 15 վայրկյանից ավելի։ Եթե գործընթացը գերազանցում է այս ժամանակը, այն կանգնեցվում է և ցուցադրվում է հետևյալ սխալը. «Գործընթացը չափազանց երկար տևեց և կանգնեցվեց. փորձեք ավելի փոքր SVG:»։
- Արգելափակված տարրեր. Անվտանգության նկատառումներից ելնելով՝ XML էլեմենտների վերլուծության ժամանակ վտանգավոր երևույթներից խուսափելու համար արգելափակվում են այն SVG-ները, որոնք պարունակում են փաստաթղթի տեսակի (doctype) կամ անհատական էլեմենտների (custom entity) հայտարարություններ։ Նման դեպքերում հայտնվում է հետևյալ հաղորդագրությունը. «Այս SVG-ն օգտագործում է փաստաթղթի տեսակ (doctype) կամ անհատական էլեմենտ (custom entity): Հեռացրեք այն նախքան օպտիմալացնելը:»։
Ձեր տվյալների գաղտնիությունը լիովին պահպանվում է. Ձեր SVG կոդն օպտիմալացվում է Ձեր բրաուզերում։ Ոչինչ չի վերբեռնվում BroBroGo սերվերներ։
Ինտերֆեյսի հաղորդագրությունները և սխալների լուծումը
Գործիքի հետ աշխատելիս կարող եք հանդիպել տարբեր իրավիճակների, որոնց դեպքում համակարգը տրամադրում է համապատասխան տեղեկատվություն.
- Դատարկ մուտքագրում. Եթե փորձեք օպտիմալացնել առանց կոդ տեղադրելու, կտեսնեք «Նախ տեղադրեք SVG կոդը:» հաղորդագրությունը։
- Ոչ SVG ֆայլ. Եթե տեղադրված տեքստում բացակայում է SVG տարրը, համակարգը կցուցադրի «Ոչ մի <svg> էլեմենտ չի գտնվել:» սխալը։
- Անարդյունավետ սեղմում. Եթե կոդն արդեն մաքուր է և անվտանգ կարգավորումներով հնարավոր չէ ավելի սեղմել այն, կցուցադրվի հետևյալ հաղորդագրությունը. «Օպտիմալացված է: Անվտանգ մաքրման կարգավորումներով չափի խնայողություն չի գրանցվել:»։
- Ընդհանուր սխալ. Ցանկացած այլ անհայտ խնդրի դեպքում համակարգը կցուցադրի «Չհաջողվեց օպտիմալացնել այս SVG-ն:» հաղորդագրությունը։
Մուտքային դաշտը մաքրելու կամ փոփոխելու դեպքում օպտիմալացման ակտիվ գործընթացն անմիջապես դադարեցվում է։ Հաջողված օպտիմալացումից հետո համակարգը ցույց է տալիս արդյունքները՝ «Բնօրինակ» չափը բայթերով, «Արդյունք» չափը բայթերով և «Խնայված» տարածքը տոկոսով ու բայթերով՝ արտածելով «Օպտիմալացված է՝ {pct}%-ով ավելի փոքր (խնայվել է {saved}):» հաղորդագրությունը։
Հաճախ տրվող հարցեր (FAQ)
Ի՞նչ է այն հեռացնում:
Այն հեռացնում է մեկնաբանությունները, մետատվյալները, խմբագրիչների անվանատարածքները (namespaces), ատրիբուտների ավելորդ բացատները, չօգտագործվող անվանատարածքները և կրճատում է գույների արժեքները։ Այն անփոփոխ է թողնում viewBox-ը, ID-ները, պիտակներն ու երկրաչափությունը։
Կարո՞ղ է այն օպտիմալացնել ցանկացած SVG:
Այն մշակում է սովորական ներկառուցված SVG կոդերը։ Փաստաթղթի տեսակի (doctype) կամ անհատական էլեմենտների (custom entity) հայտարարություններ պարունակող SVG-ները արգելափակվում են, քանի որ դրանք կարող են վտանգավոր դարձնել վերլուծությունը։ Հեռացրեք այդ հայտարարությունները և նորից փորձեք։
Արդյո՞ք այն կփոխի գրաֆիկայի տեսքը:
Օպտիմալացնող գործիքը խուսափում է ուղիների (path) վերագրումից, ID-ների վերանվանումից, viewBox-ի հեռացումից և ճշգրտության կլորացումից։ Եթե Ձեր SVG-ն հիմնվում է մեկնաբանությունների կամ մետատվյալների վրա աշխատանքային գործընթացում, պահեք բնօրինակի պատճենը։
Որտե՞ղ է կատարվում իմ ֆայլերի մշակումը:
Ձեր SVG կոդն օպտիմալացվում է Ձեր բրաուզերում։ Ոչինչ չի վերբեռնվում BroBroGo սերվերներ, ինչը ապահովում է տվյալների տեղային մշակումը։