Tôi đang phát triển một trang web trên thiết bị di động sử dụng thẻ IMG để hiển thị tệp SVG. Tệp SVG có dung lượng khoảng 500 kB. Hình ảnh hiển thị OK trong các phiên bản Android của Firefox và Chrome. Tuy nhiên, trong iOS Safari, tôi chỉ nhận được một hộp màu xanh nhỏ đáng sợ với một dấu chấm hỏi trong đó.Giới hạn kích thước tệp SVG cho iOS Safari
Tôi biết rằng có giới hạn về kích thước tệp hình ảnh trong iOS. Theo số điện thoại Safari Web Content Guide:
Kích thước tối đa cho ảnh GIF, PNG và TIFF được giải mã là 3 megapixel cho các thiết bị có RAM dưới 256 MB và 5 megapixel cho các thiết bị có RAM lớn hơn hoặc bằng 256 MB.
Tức là, đảm bảo chiều rộng * chiều cao ≤ 3 * 1024 * 1024 cho các thiết bị có RAM dưới 256 MB. Lưu ý rằng kích thước đã giải mã lớn hơn rất nhiều so với kích thước được mã hóa của một hình ảnh.
Tôi tưởng tượng rằng có một số giới hạn về kích thước của tệp SVG, nhưng vì chúng được vector hóa, không thực sự có ý nghĩa khi mô tả kích thước của chúng theo pixel được giải mã. Có ai biết giới hạn của các tệp SVG được xác định không?
P.S. Khi tôi đặt trình duyệt tệp SVG trực tiếp thay vì thông qua một trang HTML, tôi có thể xem hình ảnh. Tôi cũng có thể xem tập tin SVG bên trong một IFRAME. Nhưng không sử dụng thẻ IMG.
Phía sau hậu trường, trình duyệt sẽ vẫn hiển thị các vectơ và coi nó là một bitmap với thẻ hình ảnh, do đó các ràng buộc giống nhau sẽ áp dụng. Kích thước của SVG của bạn là gì? Bạn đã nhúng dữ liệu-uris trong SVG của bạn? – Duopixel
Trong trường hợp của tôi, kích thước của tệp SVG được hiển thị được xác định từ kích thước của khung nhìn. Trên iPhone, nó sẽ giống như 600x600. Trên iPad, nó sẽ giống như 1500x1500. Theo tính toán của tôi, các kích thước này vẫn tuân theo các giới hạn mà tôi đã đăng ở trên. –
Đúng, những thứ nguyên đó sẽ không khiến bạn gặp rắc rối, vì vậy bạn có thể loại bỏ điều đó. Tuy nhiên, 500 KB cho một hình ảnh vector là quá nhiều, bạn có hình ảnh bitmap nhúng? – Duopixel