Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Сжать bmp


Автор: En_t_end 9.1.2005, 08:47
Как это сделать ?
у меня bmp занимают 124 кб., а я хочу максимум 12 или даже меньше...
Нужно это для сайта, и вообще, как графику оптимизировать, чтобы сайт быстрее грузился ? может ПО какое-то есть ?
Конвертить в другие форматы не предлагать, так как при конвертации съезжает цвет...

Автор: Caramel 9.1.2005, 10:25
Оптимизация графики - это и есть конвертация. bmp не лучший выбор. А съедет цвет или нет - зависит от того, как хорошо ты настроишь. smile

Для web-графики лучше использовать другие форматы: gif, jpg, png. Многие графические пакеты позволяеют их использовать, я пользуюсь фотошопом smile.

Автор: En_t_end 9.1.2005, 10:31
"я пользуюсь фотошопом"
А я великим и могучим пейнтом smile
Хотя фотошопом тоже умею, но лень ставить, а допустим... если я уже созданную jpg не очень хорошего качества импортирую в фотошоп, качество будет лудше ?

Автор: Caramel 9.1.2005, 10:42
Цитата(En_t_end @ 9.1.2005, 10:31)
если я уже созданную jpg не очень хорошего качества импортирую в фотошоп, качество будет лудше ?

Откуда оно лучше-то станет? smile

Автор: dwr_budr 9.1.2005, 10:56
Если имеются претензии к сжатию с потерями используй сжатие без потерь. Lossless JPEG тебе поможет!
Но что то мне подсказывает, что можно используя обычный JPEG найти хороший компромис между качеством и размером.
В том же фотошопе для лентяев искать этот компромис самим и долго есть Save for web... который этот процесс облегчает и убыстряет.
Если у тебя вообще картинки с "ненасыщенной" палитрой тебе может подойти GIF.

Автор: Gold Dragon 9.1.2005, 11:15
Сайт на bmp - это что-то smile

лучше всего использовать gif (если это элементы для оформления, то 256 цветов выше крыши) и jpg (для фоток) - можно сделать такое сжатие, что визуально совсем не заметно..

Автор: Mal Hack 9.1.2005, 13:18
Для больших картинок можно png использовать. При его оптимизации на картинке не будет артефактов, как на jpg.

Автор: sergejzr 9.1.2005, 16:02
GIF
Тот же BMP, но как бы сжатый ZIP'ом.
Ограничение в 256 цветов.
Можно сделать прозрачным.

PNG
Тоже самое, но без ограничения на 256 цветов.
По моему нельзя прозрачным сделать (у меня не получалось)

Естественно GIF поменьше будет.
Так как базируются оба на zip'e - хорошо компрессуются графики с большими площадями одинакового цвета.

Можно картинку разбивать на части с разными цветами, чтобы в каждой было не больше 256 цветов.
Потом на страничке собирать в таблицы. Но думаю это редкий случай smile

Если кто хочет, могу выложить старый, но единственно - официально бесплатный PaintShopPro 6, который умеет работать с различными форматами. Когдп в нём поступенчато снижаешь кол-вь цветов, качество ухудшается очень медленно. (то есть не сразу с 32 бита на 16 цветов, а 32 it->16Bit->256 цветов->128 цветов-> итд..)

Автор: chipset 9.1.2005, 16:28
Если есть большие области с одинаковым цветом - разбей изображение в таблицу, а в тех ячейках где одинаковый цвет сунь однопиксельный gif нужного цвета.

Автор: S.A.P. 9.1.2005, 16:31
PNG сжимает почти всегда (если не всегда) лучше чем GIF. Проверено smile . Если я правильно понял, то это твой лого
http://forum.vingrad.ru/uploads/post-78-1105273216.jpg
для него и GIF сойдет, потому что цвета стандартные. Хотя PNG сжал сильнее, но на какие - то несчастные байты.
Добавлено @ 16:32
Используй PNG, когда надо сжать без потерь качественную картинку.

Автор: Cheba 9.1.2005, 16:34
sergej.z, png можно и с палитрой (256 цветов) делать, и полноцветный. Прозначности там много - маска (один цвет) и альфа-канал.

Сечес с офсайта PaintShop Pro можно скачать месячный пробник PaintShop Pro 8.

Автор: sergejzr 9.1.2005, 16:38
Cheba, спасибо smile Ещё бы прогу, которая с ним на полную работать сможет smile
Я честно говоря с PNG мало дел имел smile

Цитата(Cheba @ 9.1.2005, 15:34)
Сечес с офсайта PaintShop Pro можно скачать месячный пробник PaintShop Pro 8

Да, триалки всегда у них стоят. У меня полная официальная бесплатная версия + animation Shop smile

Автор: Mal Hack 9.1.2005, 16:44
Если мне не изменяет память, то гиф и пнг производят сжатия путем уменьшение числа цветов, использующихся в картинке.
При этом, пиксели, цвета, которых он "выкидыват" окрашиваются в тот цвет, который наиболее близкий, среди "не удаленных", к старому цвету пикселя.
jpg же сжимает похожим образом, но окрашивает пиксель, цвет которой выкинул в более близки к тем цветам пикселей, которые находятся рядом с ней.

Автор: sergejzr 9.1.2005, 17:00
Цитата(Mal @ 9.1.2005, 15:44)
Если мне не изменяет память, то гиф и пнг производят сжатия путем уменьшение числа цветов, использующихся в картинке.
При этом, пиксели, цвета, которых он "выкидыват" окрашиваются в тот цвет, который наиболее близкий, среди "не удаленных", к старому цвету пикселя.

Тебе изменяет память всё таки smile
Тобой описанным образом можно добится существенного увеличения сжатия. Само сжатие происходит примерно так: Вместо сохранения 100 раз синего пикселя, записывается (синий пиксель х 100). Понятно, что если мы сделаем все пиксели одного цвета в файле из 1000 пикселей будет стоять только: синий пиксель х 1000
То есть как в Zip'e

Цитата(Mal @ 9.1.2005, 15:44)
jpg же сжимает похожим образом, но окрашивает пиксель, цвет которой выкинул в более близки к тем цветам пикселей, которые находятся рядом с ней.

А JPG вообще по другому сжимает smile
Там цветв преобразуются в частоты их изменения. Просто в картинках цвет от пиксселя к пикскелю в большинстве случаев меняется очень немного. По этому высокие частоты просто обрезаются.
Кстати там, где они нужны - на линиях, из за этого появляются артефакты smile

Автор: S.A.P. 9.1.2005, 17:07
PNG сжимает с потерями цвета.

Автор: Mal Hack 9.1.2005, 17:13
Цитата(sergej @ 9.1.2005, 17:00)
Тобой описанным образом можно добится существенного увеличения сжатия. Само сжатие происходит примерно так: Вместо сохранения 100 раз синего пикселя, записывается (синий пиксель х 100). Понятно, что если мы сделаем все пиксели одного цвета в файле из 1000 пикселей будет стоять только: синий пиксель х 1000

не совсем понял. Можешь пояснить?
или линк дать.

Автор: S.A.P. 9.1.2005, 17:18
Я много где читал, что PNG сжимает без потерь. Подозреваю, что все эти статьи слизаны с одной - ложной. Лучше проверить самому: BMP сжать в PNG, а потом обратно и проверить файлы на сходимость.

Автор: Паханborisov 9.1.2005, 17:46
http://paxanborisov.narod.ru/
Интересный сайт.Советую зайти.Много интересного. smile

Автор: Cheba 9.1.2005, 17:52
Да без потерь он жмет!

Цитата(libpng)
PNG's compression is fully lossless--and since it supports up to 48-bit truecolor or 16-bit grayscale--saving, restoring and re-saving an image will not degrade its quality, unlike standard JPEG (even at its highest quality settings).
Источник. http://www.libpng.org/pub/png/pngintro.html#usage
Добавлено @ 17:53
Это если ты с палитрой будешь делать, то тогда будут потери, а так - все пучком.

Автор: sergejzr 9.1.2005, 18:13
Цитата(Mal @ 9.1.2005, 16:13)
не совсем понял. Можешь пояснить?
или линк дать.

Линьки не дам, не знаю где искать smile
Пояснить попробую..

Все граф файлы выглядят примерно так:
шапка / пиксели


Файд BMP выглядет примерно так:

Цитата
ширина/ высота /красный /синий /зелёный /красный /синий /зелёный

100    /100      /128        /128    /256        /128      /128      /256


А gif будет выглядеть:

Цитата
ширина/ высота /количество /синий /зелёный /красный /количество /синий /зелёный /красный

100      /100        /100            /128    /128        /256        /30            /0          /128        /256 



То есть в примере BMP 8 числами описывает 2 пикселя, а gif 10-ю числами 130 пикселей smile

Автор: En_t_end 9.1.2005, 18:26
Народ... Спасибо...!!!
Я испытывал Png и GIF -
Как лично мне показалось, в png цвета ярче, насыщеней, но мне важна каждая секунда, поэтому я использовал gif, тем более потеря в моем случае несущественна...
Ещё раз спасибо!!!

Автор: S.A.P. 9.1.2005, 18:37
Цитата(En_t_end @ 9.1.2005, 18:26)
Как лично мне показалось, в png цвета ярче, насыщеней, но мне важна каждая секунда, поэтому я использовал gif
ЛОЛ smile
smile smile smile

Автор: sergejzr 9.1.2005, 19:35
Попробовал сравнить разлинчные типы файлов и форматы. Зелёная ячейка это формат- победитель для такого типа. Красная - проигравший.
Типы были:
Одноцветная картинка
Одноцветная структура
Фотография
несколько одноцветных обьектов
несколько одноцветных обьектов на структурном фоне
Как видим, всему свой формат smile


Замечания
Картинки
название
Размер
Реально
Цветов
Оценка
\"n\"
GIF Заметно проигрывает PNG. Да кстати как и во всех остальных smile Обр. внимани, в 5 раз!
Однако после того, как мы ограничили кол-во цветов до одного, GIF уменьшился в 10 раз и выиграл!
\"1x1.gif\"
1x1.gif
799
1
--
\"1x1.png\"
1x1.png
141

-
\"1x1_1cvet.gif\"
1x1_1cvet.gif
77

++
\"1x1_1cvet.png\"
1x1_1cvet.png
122

-
Что мы видим? GIF увеличился совсем немного. Выходит у него шапка под 500 байт smile. Само увеличение количества пикселей весу прибавило немного, А ведь увеличилось в 1000 раз!
JPG Где то посередине...
\"100x100.gif\"
100x100.gif
957
1
-
\"100x100.png\"
100x100.png
365

+
\"100x100.jpg\"
100x100.jpg
826

-
После ограничения цветов выиграл PNG
\"100x100_1cvet.gif\"
100x100_1cvet.gif
197

+
\"100x100_1cvet.png\"
100x100_1cvet.png
139

++
BMP имеет константный размер независимо от цветов пикселей и их расположения.
\"bunt.bmp\"
bunt.bmp
30 054
51

В этом примере взят один чвает разнообразных оттенков. 256 цветов GIF'a дают о себе знать. Появились линии. Я думал, столько оттенков просто не вмещаются в 256 цветов. Но проблема видимо в другом.. Т.К цветов 51
\"bunt.gif\" bunt.gif 3 471

-
PNG не только держится молодцом, но и компрессует заметно лучше. Мы видим 100% аналог BMP ? который в 5 раз меньше оригинала!
\"bunt.png\" bunt.png 868

+++
Попробуем ручками уменьшить кол-во цветов до 32. GIF' у не помогло.
\"bunt_32.gif\"
bunt_32.gif
3 471

--
PNG не только ухудшил качество, но и компрессует хуже.
\"bunt_32.png\"
bunt_32.png
1 360

-
Попробуем фотку. Да, тут Zip'ом лезть не стоит, одинаковых пикселей практически нет.
\"gizmo.gif\"
gizmo.gif
10 058
9259
-
PNG проигрывает GIF'y Думаю это из за того, что GIF редуцировал цвета на 256, а PNG по прежнему держит миллион smile.
\"gizmo.png\"
gizmo.png
20 052

---
Вот тут и выигрывает JPEG. На фотографиях обычно мало чётких переходов. Цвета плавненько переходят один в другой. Путём обрезания высоких частот происходит отличная компрессия
\"gizmo.jpg\"
gizmo.jpg
3 850

+++
Мы можем поэкспериментировать с кол-вом цветов.
Оставим 128. GIF'y стало немного лучше, но это естественно не  пробивное улучшение.
\"gizmo_128.gif\"
gizmo_128.gif
7 542

-
PNG тоже получил толчок, но JPEG на полном цвете всё ещё значительно лучьше.
\"gizmo_128.png\" gizmo_128.png
6 274

-
А что произошло с JPEG'ом здесь? Предполагаю, что после уменьшения кол-ва цветов появились резкие переходы, которые JPEG'y  тяжело сжимать.
\"gizmo_128.jpg\"
gizmo_128.jpg 4 193

--
Несколько обьектов на однотонном фоне. Именно так выглядет большинство WEB-графиков. GiF справляется неплохо.
\"xbjects.gif\"
xbjects.gif
1 225
4
-
No PNG намного лучше.
\"xbjects.png\"
xbjects.png
450

+
Редукция на 4 цвета значительно улучшает компрессию.
\"xbjects_4.gif\"
xbjects_4.gif
439

-
Особенно у PNG.
\"xbjects_4.png\"
xbjects_4.png
181

+++
JPG Подобные графики и компрессует хуже и качество ужасное..
\"xbjects.jpg\"
xbjects.jpg 1 665

---
Как уже говорилось, размер BMP зависит лишь от количества пикселей.
\"xbjects_bunt.bmp\"
xbjects_bunt.bmp
30 054
51

Появления структуры ухудшило компрессию в 3 раза.
\"xbjects_bunt.gif\"
xbjects_bunt.gif 3 393

--
И в 2 раза у PNG. Но качество PNG конечно намного лучше.
\"xbjects_bunt.png\"
xbjects_bunt.png
987

+++
Уменьшение цветов - без комментара.
\"xbjects_bunt_32.gif\"
xbjects_bunt_32.gif
2 548

--

\"xbjects_bunt_32.png\"
xbjects_bunt_32.png
556

--
JPEG и тут всё размыл.. И толком не сжал..
\"xbjects_bunt.jpg\"
xbjects_bunt.jpg
2 718

---

Автор: S.A.P. 9.1.2005, 19:49
PNG рулит по всем параметрам. Не знаю как тут с фотографиями полуилось, но у меня как то и JPEG обходил (не на всех) . smile

Автор: sergejzr 9.1.2005, 20:01
Я ещё 4 картинки добавил с уменьшением цветов. Один раз гиф выиграл...
Добавлено @ 20:05
Цитата(Perchilla @ 9.1.2005, 18:49)
но у меня как то и JPEG обходил (не на всех)

Возможно при уменьшении цветов, но JPG - качество немного лучше..

Ревятя, какую прогу посоветуете для создания прозрачных PNG и анимированных?

Автор: Qangster 9.1.2005, 20:10
куда 120 и 12

Автор: Cheba 9.1.2005, 20:22
Прозрачные png - Jasc Paintshop Pro (7, 8 точно), Macromedia Fireworks
Анимированые png (mng) - Jasc Animation Shop (3 точно)
Добавлено @ 20:24
sergej.z, а запости еще реальное (изначальное) количаство цветов для каждого изображения.

Автор: sergejzr 9.1.2005, 20:34
Cheba, сделал smile
Спасибо за советы, попробую..

Qangster, модем отключили? smile smile

Автор: Borland_Delphi_6 10.1.2005, 01:24
Не совсем в тему: взял первую попавшуюся картинку (bunt.bmp) и сжал своим (ну, не то чтобы он был полностью мой, но... smile ) форматом сжатия - Compressed Picture Array. В результате получил файл в 543 байта... smile Не мог не похвастаться smile Скоро ждите презентации программы для просмотра CPA файлов smile

Цитата(Perchilla @ 9.1.2005, 20:49)
PNG рулит по всем параметрам

Гы! PNG еще отдохнет smile

Также скромно замечу, что 134 МБ графики в BMP были сжаты в 16.5 smile

ЗЫ: Скромность - мое второе имя smile

Автор: Cheba 10.1.2005, 02:39
Borland_Delphi_6, поделись алгоритмом.

Автор: En_t_end 10.1.2005, 08:39
Borland_Delphi_6
Хочу такую же !!!

Автор: Black 10.1.2005, 11:52
про сжатие изображений можно почитать здесь: http://lib.ru/TECHBOOKS/ALGO/VATOLIN/algcomp.htm
про GIF тут: http://lib.com.ua/books/7/30n1.html

Автор: sergejzr 10.1.2005, 12:51
PHP-DIRECTOR? ага, хорошия ссылочки!

Автор: Qangster 11.1.2005, 19:55
Спасибо хорошая ссылка

Автор: sergejzr 11.1.2005, 20:48
Цитата(Qangster @ 9.1.2005, 19:10)
куда 120 и 12

чего сказать то хотел? smile smile

Автор: Borland_Delphi_6 14.1.2005, 23:46
En_t_end
Для браузера это все равно не покатит

Автор: Cheba 14.1.2005, 23:57
Borland_Delphi_6, это пока что... А ты сделай плагины к броузерам. И к графическим редакторам. Авось станет популярней gif'а. smile

Автор: Borland_Delphi_6 15.1.2005, 00:32
Я мечтаю об этом... Но первым делом попробую сделать плагин к IrfanView smile

Автор: Cheba 15.1.2005, 00:45
А алгоритм сжатия своего расскажешь? Или боишся, что сопрут? smile

Автор: sergejzr 15.1.2005, 00:46
Кто нить в курсе, JPEG2000 насколько стандартизировали. Как насчёт браузеров?
Borland_Delphi_6 у тебя на чём алг базируется?

Автор: Sardar 15.1.2005, 00:51
Возможно часть в вектор переводит...
Borland_Delphi_6 давай тест фотографий и простой графики smile

Автор: S.A.P. 15.1.2005, 09:10
Хотелось бы еще на качество посмотреть.

Автор: Borland_Delphi_6 15.1.2005, 10:45
Perchilla
Качество без потерь - 100%.
Алгоритм - позже выложу прогу и несколько файлов, небось сами догадаетесь...

Автор: sergejzr 15.1.2005, 19:46
Borland_Delphi_6, ждём smile

Автор: Borland_Delphi_6 16.1.2005, 00:50
sergej.z
Как только... Вы увидите первыми smile Просто щас проблема с интеграцией с одной другой моем программой и времени в обрез smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)