Який формат краще для збереження зображень, призначених для веб-сайтів; PNG або SVG?


Відповіді:


8

Я б сказав, що PNG просто за те, що він здається більш прийнятим форматом, ніж SVG.


3
Для якості SVG це краще, але на практиці єдине реальне рішення - це PNG, оскільки SVG на сьогоднішній день не підтримується глобально.
Littlemad

@Littlemad Візуалізація та відображення SVG також повільніше, ніж просто розмивання зображення PNG.
Матін Ульхак

1
@Littlemad Не потрібно. Ви можете використовувати VML-рішення для IE <9, або попередньо відтворити його на сервері або навіть використовувати вбудований на базі флеш-конвеєрів, який відображає його в IE. Усі браузери (принаймні основні) підтримують SVG, лише IE 6, 7 і 8 f * посилаються на нас. Тому просто використовуйте будь-яке рішення, яке не жахливо, якщо вони бачать гірший сайт, це їхня вина. Це дуже схоже на SDTV проти HDTV або DVD проти BluRay.
Каміло Мартін

1
У 2014 році ця відповідь, ймовірно, повинна на користь SVG.
Ганна

1
2015 caniuse.com/#search=svg - в основному просто немає IE8
goodship11

18

Проста відповідь тут - використання обох.

Той факт, що ви назвали SVG як варіант, означає, що ми можемо виключити графіку фотографій як призначений варіант використання - тому що SVG хороші лише для лінійної графіки, таких як логотипи, піктограми та ілюстрації, подібні до зображень.

Якщо ви розглядаєте цей вибір для фото графіки, вибору немає; PNG, мабуть, завжди буде кращим. Для графіки, де SVG є життєздатним варіантом, SVG є найкращим варіантом із запасом PNG / JPEG. PNG має багато сильних сторін, але щодо масштабованості та розміру файлу він часто не відповідає SVG.

Використовуючи лише те чи інше, вам доведеться пожертвувати або зворотною сумісністю, або прогресивним удосконаленням.

Зважуючи їх один проти одного, PNG, безумовно, буде підтримуватися більшою кількістю браузерів, ніж SVG, на даний момент часу, але дозвіл щойно випущених пристроїв назавжди збільшується, тобто PNG потрібно буде подавати на основі широкого спектру різних дозволів (за допомогою медіа-запитів, JavaScript або Sniffing агента користувача) або масштабування браузерами, що може призвести до недосконалих результатів.

Дивлячись на те, що нам відомо майбутнє; назавжди вищі дозволи, ширша підтримка та ширше використання SVG в Інтернеті; є сенс будувати для того, що буде.

Загалом, веб-сайти повинні бути створені так, щоб вони працювали довгі роки; через 5 років ваш красиво зворотний сумісний веб-сайт може виглядати приголомшливо для 2% користувачів Інтернету, які все ще користуються старими браузерами, але доволі бідними у сучасних браузерах із шаленими роздільними можливостями - тому це дуже багато складних виборів, яким способом зробити компроміс.


Ваші варіанти в листопаді 2014 року

  1. Тільки PNG

    • Для якості вам потрібно буде обслуговувати щонайменше п’ять різних версій залежно від розмірів екрана та роздільної здатності - і це дуже консервативна здогадка, ви можете отримати 10 - 15 версій того самого зображення, якби хотіли бути надзвичайно ретельними. . Це також потребує певного часу.

    • Якщо ви вирішили обслуговувати одну графіку та маєте масштаб браузера, результати, ймовірно, будуть менш ідеальними та можуть бути навіть некрасивими залежно від кількості масштабування.

    • Велика кількість медіа-запитів може зайво роздути CSS і негативно вплинути на швидкість завантаження сторінки.

    • Буде чудово виглядати на старих браузерах та пристроях, але не настільки чудово на нових.

  2. SVG-файли з єдиним запасом PNG / JPEG / GIF

    • Ви можете використовувати SVG скрізь, а потім повернути їх до іншого формату для браузерів, які не підтримують SVG. Основна перевага - вам потрібен лише один файл для всіх різних дозволів.

    • Якщо ви йдете на компроміс і приймаєте, що користувачі застарілих браузерів можуть жити з недосконалою масштабною графікою, вам знадобиться лише одна інша версія кожного файлу у форматі PNG, JPEG або GIF.

    • Це може зайняти аналогічну кількість часу, як для PNG лише медіа-запитів - можливо, навіть менше, тобто, можливо, це буде приблизно однаковою ціною.

    • Чудово виглядатимуть на всіх нових пристроях, жертви робляться за старими технологіями.

  3. SVG з кількома запасами PNG / JPEG / GIF залежно від роздільної здатності та розміру екрана

    • Ви можете спочатку обслуговувати SVG, а потім PNG, залежні від роздільної здатності, для браузерів, які не підтримують SVG. Це було б найбільш ретельним, найбільш сумісним назад і вперед, найзміннішим і найдорожчим часом.

    • Можливо, це займе стільки ж часу, скільки 1 і 2 разом, а також трохи додаткової для відпрацювання перегинів.

    • Буде дивовижно майже на кожному пристрої.


Підсумовуючи це, я думаю, що це залежить від того, чи шукаєте ви більш сумісної сумісності чи прогресивнішого вдосконалення, а також скільки грошей часу доведеться витратити.


1
Ви можете згадати щось про <picture>елемент, який допомагає із різними розмірами зображень
Zach Saucier

15

SVG є масштабованим, якщо у вас є векторна графіка, що є явною перевагою. Для піксельної графіки краще PNG. Мінусом є те, що Internet Explorer підтримує SVG лише з наступною версією 9 (раніше з плагіном). Мобільні браузери можуть також мати обмежену підтримку SVG.

EDIT : Як зазначає ClemDesm, більш старі версії IE не підтримують повністю прозорий PNG, оскільки підтримується IE8. Непрозорі PNG працюють чудово. Відповідь Computerish має чудове рішення для обробки векторних зображень на даний момент: Зберігайте їх як SVG, але експортуйте їх для Інтернету як PNG. Я повністю згоден з цим рішенням.


-1 Svg це все ще не підтримується у всьому світі, я б не пропонував його використовувати, якщо ви не поясните чітко, де працює, і альтернатива, якщо вона не працює (швидше за все). Ми повинні враховувати веб-стандарти, яких ми намагаємось досягти. Якщо вибір призначений для Інтернету, а саме для PNG або SVG, він повинен бути завжди PNG, доки SVG не підтримується глобально браузерами на покоління старше. Я хотів би використовувати досконалість SVG, але це ще не реальність.
Littlemad

Як я вже писав, IE не має підтримки SVG (лише в теперішній майбутній версії 9), і мобільний браузер також може бракувати підтримки.
Менмент

@Littlemad: потік трохи перебільшений, оскільки 1- відповідь говорить нам, що він не підтримується повністю (нормально, не так багато деталей, але, все ж, сказано і не помиляється, не заслуговує альфа-каналу -1) 2- PNG не підтримується в IE6 і 7, і про це не йдеться і слова? :)
Шикірю

@ClemDesm: Добре підказка, старші IE не підтримують прозорі PNG повністю.
Мнемент

1
@Littlemad "не підтримується у багатьох останніх браузерах" Це, мабуть, є неправильним висновком, оскільки у зв'язаній довідці є лише один браузер, який не здатний обробляти SVG (IE8). Вам також не потрібно встановлювати плагіни для використання SVG (ніколи цього не бачив, можливо, в IE6). Те, що ви бачите червоним кольором у зв’язаному посиланні - це частини SVG, які ви здебільшого не використовуєте (в основному це якісь фільтри чи інші ефекти). Основи працює.
honoela

5

Однозначно використовуйте PNG для веб-сайту. SVG просто недостатньо широко підтримується, і він має невеликі (якщо такі є) значні переваги над PNG для урізаного експорту. З цього приводу зберігайте всі свої робочі копії у SVG.


1
Гарне рішення зберегти оригінал у форматі SVG та експортувати його до PNG для Інтернету. Якщо SVG пізніше підтримується, ви можете змінити його. Я б рекомендував це рішення для векторних зображень.
Мнемент

2
"це має мало (якщо є) суттєвих переваг над PNG" Що? Як ви маніпулюєте PNG за допомогою CSS або JavaScript? Як їх масштабувати, не втрачаючи роздільної здатності? Як ви пов’язуєте частини зображення (наприклад, посилання на країну на карті)? SVG-файли зазвичай також набагато менші, ніж PNG (за винятком крихітних піктограм).
honoela

3
SVG має багато переваг перед PNG для векторних ілюстрацій.
DA01,

0

Я б дотримувався PNG, щоб бути на безпечній стороні. SVG все ще не повністю прийнято багатьма великими інтернет-компаніями та браузерами. Хоча SVG є масштабованими та є векторами, вони часто непотрібні, займають більше місця та ускладнюють веб-сайт.

Я сподіваюся, що відповів на ваше запитання :)


"зайняти більше місця та перекомплікація"? Як так?
DA01

1
Я майже впевнений, що це може вплинути на вашу SEO, оскільки ваші зображення можуть не відображатися в Google, і я не впевнений на 100%, але часто трапляється так, що завантаження SVG вимагає більше часу
nicolos

2
Час для завантаження залежить від розміру файлу, SVG-файлів часто може бути значно меншим. І якщо пошук зображень google важливий для SEO ваших сайтів, так, PNG може бути кращим, але я думаю, що це більше ніша річ.
DA01

1
Так, я маю на увазі, що наприкінці дня немає правильної чи неправильної відповіді. Розмір файлу значно залежить від складності зображення та так, ваш вибір залежить від випадку використання. Я просто констатував плюси та мінуси різних типів файлів :)
nicolos

-1

Навіть незважаючи на те, що SVG не є загальновизнаним, а у деяких людей невдалий час масштабування PNG, я завжди виявляв, що створення піктограми в Adobe Illustrator найкраще працює при збільшенні або зменшенні "розумної" кількості.


Чи дозволяє Adobe Illustrator png чи svg або те чи інше, або яка саме причина тут називати Illustrator? І чому ви вважаєте, чому svg не прийнято глобально?
Менш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.