Định dạng nào tốt hơn để lưu hình ảnh dành cho trang web; PNG hay SVG?


Câu trả lời:


8

Tôi muốn nói PNG đơn giản vì thực tế nó có vẻ là một định dạng được chấp nhận hơn so với SVG.


3
Đối với SVG chất lượng thì tốt hơn, nhưng trên thực tế, giải pháp thực sự duy nhất là PNG vì SVG không được hỗ trợ trên toàn cầu vào ngày này.
Littlemad

@Littlemad Kết xuất và hiển thị SVG cũng chậm hơn so với việc đơn giản làm mờ hình ảnh bằng PNG.
Mateen Ulhaq

1
@Littlemad Bạn không cần phải làm vậy. Bạn có thể sử dụng cách giải quyết VML cho IE <9 hoặc bạn có thể kết xuất trước nó trên máy chủ hoặc thậm chí sử dụng nhúng dựa trên flash để hiển thị trên IE. Tất cả các trình duyệt (ít nhất là các trình duyệt chính) đều hỗ trợ SVG, chỉ IE 6, 7 và 8 là f * cking với chúng tôi. Vì vậy, chỉ cần sử dụng bất kỳ cách giải quyết nào không kinh khủng, nếu họ thấy một trang web tồi tệ hơn, đó là lỗi của họ. Nó giống như SDTV vs HDTV hoặc DVD vs BluRay.
Camilo Martin

1
Trong năm 2014, câu trả lời này có lẽ nên được ủng hộ của SVGs.
Hanna

1
2015 caniuse.com/#search=svg - về cơ bản chỉ là không có IE8
goodship11 24/07/2015

18

Câu trả lời đơn giản ở đây là sử dụng cả hai.

Thực tế là bạn đã đặt tên cho SVG là một tùy chọn, có nghĩa là chúng ta có thể loại trừ đồ họa ảnh như một trường hợp sử dụng dự định - bởi vì SVG chỉ tốt cho đồ họa nghệ thuật đường nét như logo, biểu tượng và hình minh họa giống như clip.

Nếu bạn đang xem xét lựa chọn này cho đồ họa ảnh, không có lựa chọn nào; PNG có thể sẽ luôn luôn tốt hơn. Đối với đồ họa trong đó SVG là một tùy chọn khả thi, SVG là tùy chọn tốt nhất với dự phòng PNG / JPEG. PNG có nhiều điểm mạnh, nhưng về khả năng mở rộng và kích thước tệp, nó thường sẽ không khớp với SVG.

Chỉ sử dụng một hoặc các phương tiện khác, bạn sẽ phải hy sinh khả năng tương thích ngược hoặc tăng cường tiến bộ.

Cân nhắc chúng với nhau, PNG chắc chắn sẽ được hỗ trợ bởi nhiều trình duyệt hơn SVG tại thời điểm hiện tại, nhưng độ phân giải của các thiết bị mới được phát hành sẽ tăng mãi mãi, có nghĩa là PNG sẽ cần được phục vụ dựa trên nhiều độ phân giải khác nhau (thông qua Truy vấn phương tiện, JavaScript hoặc Đánh hơi tác nhân người dùng) hoặc được các trình duyệt thu nhỏ, có thể tạo ra một số kết quả không hoàn hảo.

Nhìn vào những gì chúng ta biết tương lai nắm giữ; độ phân giải cao hơn mãi mãi, hỗ trợ rộng hơn và sử dụng rộng rãi hơn các SVG trên internet; nó có ý nghĩa để xây dựng cho những gì sắp tới.

Nói chung, các trang web nên được xây dựng để tồn tại trong nhiều năm; trong 5 năm nữa, trang web tương thích ngược đẹp mắt của bạn có thể trông tuyệt vời đối với 2% người dùng internet vẫn sử dụng các trình duyệt cũ, nhưng khá kém trên các trình duyệt cập nhật với độ phân giải điên rồ - vì vậy, rất nhiều lựa chọn khó khăn thỏa hiệp.


Lựa chọn của bạn vào tháng 11 năm 2014

  1. Chỉ dành cho PNG

    • Vì mục đích chất lượng, bạn sẽ cần phục vụ ít nhất năm phiên bản khác nhau tùy thuộc vào kích thước và độ phân giải màn hình - và đó là một dự đoán rất bảo thủ, bạn có thể kết thúc với 10 - 15 phiên bản của cùng một hình ảnh nếu bạn muốn cực kỳ kỹ lưỡng . Điều này cũng mất một thời gian để thực hiện.

    • Nếu bạn chọn phục vụ một đồ họa duy nhất và có quy mô trình duyệt, kết quả có thể sẽ không hoàn hảo và thậm chí có thể xấu tùy thuộc vào số lượng tỷ lệ.

    • Một số lượng lớn các truy vấn phương tiện có thể làm phình to CSS một cách không cần thiết và ảnh hưởng tiêu cực đến tốc độ tải trang.

    • Sẽ trông tuyệt vời trên các trình duyệt và thiết bị cũ hơn, nhưng không tuyệt vời trên các trình duyệt mới hơn.

  2. Các SVG với dự phòng PNG / JPEG / GIF

    • Bạn có thể sử dụng SVG ở mọi nơi và sau đó chuyển sang định dạng khác cho các trình duyệt không hỗ trợ SVG. Ưu điểm chính là bạn chỉ cần một tệp cho tất cả các độ phân giải khác nhau.

    • Nếu bạn thỏa hiệp và chấp nhận rằng người dùng trên các trình duyệt lỗi thời có thể sống với đồ họa không hoàn hảo, bạn sẽ chỉ cần một phiên bản khác của mỗi tệp ở định dạng PNG, JPEG hoặc GIF.

    • Điều này sẽ mất một khoảng thời gian tương tự để thực hiện vì các truy vấn phương tiện chỉ dành cho PNG - thậm chí có thể ít hơn, có nghĩa là nó có thể sẽ có cùng mức giá.

    • Sẽ trông tuyệt vời trên tất cả các thiết bị mới, với sự hy sinh được thực hiện trên công nghệ cũ.

  3. SVG với nhiều dự phòng PNG / JPEG / GIF phụ thuộc vào độ phân giải và kích thước màn hình

    • Bạn có thể phục vụ SVG trước, sau đó là PNG phụ thuộc vào độ phân giải cho các trình duyệt không hỗ trợ SVG. Đây sẽ là tùy chọn triệt để nhất, ngược nhất và tương thích nhất, phù hợp nhất và tốn thời gian nhất .

    • Nó có thể sẽ mất nhiều thời gian như 1 & 2 kết hợp, cộng thêm một chút để xử lý các nút thắt.

    • Sẽ trông tuyệt vời trên hầu hết mọi thiết bị.


Tóm lại, tôi nghĩ nó phụ thuộc vào việc bạn đang tìm kiếm khả năng tương thích ngược hơn hoặc tăng cường tiến bộ hơn và bạn phải bỏ ra bao nhiêu thời gian.


1
Bạn có thể đề cập vài điều về <picture>yếu tố trợ giúp với các kích thước hình ảnh khác nhau
Zach Saucier

15

SVG có thể mở rộng, nếu bạn có một đồ họa vector là một lợi thế rõ ràng. Đối với PNG đồ họa pixel thì tốt hơn. Một nhược điểm là, Internet Explorer chỉ hỗ trợ SVG với phiên bản 9 sắp tới (trước đó có plugin). Các trình duyệt di động cũng có thể có hỗ trợ hạn chế cho SVG.

EDIT : Như ClemDesm chỉ ra, các phiên bản IE cũ hơn không hỗ trợ PNG hoàn toàn trong suốt, vì IE8 được hỗ trợ. PNG không trong suốt hoạt động tốt. Câu trả lời của Computerish hiện có một giải pháp tuyệt vời để xử lý hình ảnh vector: Giữ chúng dưới dạng SVG, nhưng xuất chúng cho web dưới dạng PNG. Tôi hoàn toàn đồng ý với giải pháp này.


-1 Svg nó vẫn chưa được hỗ trợ trên toàn cầu Tôi sẽ không đề xuất sử dụng nếu bạn không giải thích rõ ràng nơi nào đang hoạt động và một giải pháp thay thế trở lại trong trường hợp nó không hoạt động (rất có thể). Chúng tôi phải xem xét các tiêu chuẩn web mà chúng tôi đang cố gắng đạt được. Nếu lựa chọn dành cho web và nó dành cho PNG hoặc SVG, thì nó phải luôn là PNG, cho đến khi SVG, nó được hỗ trợ toàn cầu bởi các trình duyệt của một thế hệ cũ. Tôi rất thích sử dụng sự hoàn hảo của SVG, nhưng nó chưa phải là thực tế.
Littlemad

Như tôi đã viết, IE không có hỗ trợ SVG (chỉ trong phiên bản 9 cho đến nay) và trình duyệt di động cũng có thể thiếu hỗ trợ.
Mnementh

@Littlemad: downvote hơi bị háo hức vì 1- câu trả lời cho chúng tôi biết nó không được hỗ trợ đầy đủ (ok, không quá nhiều chi tiết nhưng, tuy nhiên, nó được nói và không sai, không xứng đáng với kênh alpha -1) không được hỗ trợ trong IE6 & 7 và không phải là một từ về điều đó? :)
Shikiryu

@ClemDesm: Ah, gợi ý hay, IE cũ không hỗ trợ đầy đủ PNG trong suốt.
Mnementh

1
@Littlemad "không được hỗ trợ trong nhiều trình duyệt gần đây" Đó dường như là một kết luận sai, vì trong tham chiếu được liên kết, chỉ có một trình duyệt không có khả năng xử lý SVG (IE8). Bạn cũng không cần phải cài đặt plugin để sử dụng SVG (chưa bao giờ thấy điều đó, có thể trong IE6). Những gì bạn thấy màu đỏ trên tham chiếu được liên kết là các phần của SVG, bạn hầu như không sử dụng (chủ yếu là một số loại bộ lọc hoặc hiệu ứng khác). Những điều cơ bản hoạt động.
feeela

5

Chắc chắn sử dụng PNG cho một trang web. SVG đơn giản là không được hỗ trợ rộng rãi và nó có một số lợi ích đáng kể (nếu có) so với PNG cho xuất khẩu phẳng. Điều đó nói rằng, giữ tất cả các bản sao làm việc của bạn trong SVG.


1
Giải pháp tốt để giữ bản gốc là SVG và xuất nó sang PNG cho web. Nếu sau này SVG được hỗ trợ tốt hơn, bạn có thể thay đổi nó. Tôi muốn giới thiệu giải pháp đó cho hình ảnh vector.
Mnementh

2
"Nó có rất ít (nếu có) lợi ích đáng kể so với PNG" Cái gì? Làm thế nào để bạn thao tác với PNG thông qua CSS hoặc JavaScript? Làm thế nào để bạn quy mô chúng, mà không mất độ phân giải? Làm thế nào để bạn liên kết các phần của hình ảnh (ví dụ: liên kết quốc gia trên bản đồ)? Các tệp SVG thường nhỏ hơn nhiều so với PNG (ngoại trừ các biểu tượng nhỏ).
feeela

3
SVG có rất nhiều lợi thế so với PNG cho hình minh họa vector.
DA01

0

Tôi sẽ gắn bó với PNG để ở bên an toàn. SVG vẫn chưa được chấp nhận hoàn toàn bởi nhiều công ty và trình duyệt internet lớn. Mặc dù các SVG có khả năng mở rộng và là các vectơ chúng thường không cần thiết, chiếm nhiều không gian hơn và quá phức tạp cho trang web.

Tôi hy vọng rằng đã trả lời câu hỏi của bạn :)


"Chiếm nhiều không gian hơn và quá phức tạp"? Làm sao vậy
DA01

1
Tôi khá chắc chắn rằng nó có thể ảnh hưởng đến SEO của bạn vì hình ảnh của bạn có thể không hiển thị trên Google và tôi không chắc chắn 100% nhưng thường thì các SVG mất nhiều thời gian hơn để tải
nicolos

2
Thời gian tải dựa trên kích thước tệp, trong đó SVG thường có thể nhỏ hơn nhiều. Và nếu tìm kiếm hình ảnh google là quan trọng đối với SEO trang web của bạn, vâng, PNG có thể tốt hơn, nhưng tôi nghĩ đó là một điều thích hợp hơn.
DA01

1
Vâng, ý tôi là vào cuối ngày không có câu trả lời đúng hay sai. Kích thước tệp phụ thuộc nhiều vào độ phức tạp của hình ảnh của bạn & có, sự lựa chọn của bạn phụ thuộc vào trường hợp sử dụng. Tôi chỉ đơn thuần nêu rõ ưu và nhược điểm của các loại tệp khác nhau :)
nicolos

-1

Mặc dù SVG không được chấp nhận trên toàn cầu và một số người gặp khó khăn khi nhân rộng các PNG, tôi luôn thấy rằng việc tạo một biểu tượng trong Adobe Illustrator hoạt động tốt nhất trong việc tăng hoặc giảm số lượng "hợp lý".


Adobe Illustrator có cho phép pngs hoặc svg hoặc cả hai hoặc lý do chính xác để đặt tên Illustrator ở đây là gì? Và tại sao bạn nghĩ rằng Svg không được chấp nhận?
Mensch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.