Как стать автором
Обновить

Комментарии 24

Для сравнения иконки в среднем занимаю 500-700 байт,
влезают в inode, и как результат считываются за раз вместе с атрибутами файла.
В BeOS растровые иконки занимали 1280 байт.
В Viste иконки могут занимать до 80 кило.
SVG иконки в ZETA сжатые достигают 2-10 кило.
svg иконки могут варьироваться в размерах — насколько мусорно запишет их редактор
HVIF двоичный формат, в то время как SVG символьный, что уже значительно определяет размер.
SVG к тому же не просто символьный (тот же например PS), но и XML :)
То есть очень избыточен.
Сказывается разная «заточенность» форматов.
SVG переносимый формат широкого назначения, HVIF формат разработан специально для иконок, со своими ограничениями.
А вот такая иконка в макосе занимает 364 KB:

Там в файле еще 4 версии поменьше и альфаканалы для всех.
Вроде быстро все работает.

А если это все вектором описывать, то тормозить будет не от скорости загрузки файла, а от времени, которое процессор будет тратить на прорисовку каждой иконки.
А теперь представьте что иконка появляется мгновенно!
Ну, так она так и делает.
В сравнении с HVIF этого быть не может по простой причине, опять придётся повторять, иконка умещается в inode, поэтому она загружается вместе с метаданными файла.
Как только показалось название файла, тут же показалось и иконка.
В других случаях это будет как дополнительная операция чтения файла:
1. нужно считать метаданные, узнать где иконка
2. найти и считать с диска иконку
Может все так и есть, но я, как пользователь, никаких задержек не замечаю. Превью фильмов, картинок больших в иконках, да, подгружает, но обычные иконки уже сразу есть в новом окне.
Ну думаю в мак ос тоже придумывают всякого рода пути оптимизации, кеширование и прочее.
Я про это и говорю. В Барсике вообще все программы заархивированы и записаны в одном и том же месте на диске. Если из под Леопарда зайти, то все программы по 0 байт будут.
Это как в одном месте?
Скажем так что даже для растра, за исключением bitmap, тоже надо подумать процессору чтобы его показать.
В HVIF применяются разного рода оптимизации, которые позволяют отрисовать вектр за один проход.
Я вам говорю как рисователь иконок, если это (↑) оставить вектором, то на то, чтобы просчитать итоговое изображение уйдет больше процессорного времени. И я думаю, в хайковском формате невозможно сделать иконку такой сложности.

В макосе есть векторные иконки но они, как правило, на тулбарах программ находятся, черно-белые пиктограммы, например. Хранятся в формате PDF. Это, наверное, потому, что в макосе графическая система (Quartz) основана на PDF.
Может попробуете, как рисователь иконок, нарисовать подобную иконку в Icon-o-Matic (вот даже туториал есть video.google.com/videoplay?docid=-2008513940874112547#).
Будет очень интересно сравнить.
Саму haiku можно поставить или в виртуалке или с live flash/cd.
www.haiku-os.org/get-haiku
странно как-то. говориться что иконки меньше, а сравнения нет
Какого сравнения?
Прямоугольник:
HVIF — 7 байт
SVG — <rect x=«0» y=«0» width=«64» height=«64»/> — 42 байта
Разница уже в 6 раз :)
Пересите в пост подробные сравнения, пожалуйста.
Какие сравнения, откуда?
Ура, я перевел 100 000 иконок из SVG в HVIF и выиграл 3,5 мегабайта.
Выше написано: влезают в inode, и как результат считываются за раз вместе с атрибутами файла. В этом основное преимущество, скорее всего.
влезают в inode, и как результат считываются за раз вместе с атрибутами файла

И действительно зачем было экономить жалкие мегабайты? Пусть иконки по метру будут :)
Спасибо за перевод.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории