Size: a a a

2020 September 12

D

Dayren in The Codeby
существует много алгоритмов сжатия
источник

D

Dayren in The Codeby
мы только про rle говорили
источник

NZ

Nazar Zakap in The Codeby
Достаточно пока что
источник

NZ

Nazar Zakap in The Codeby
Распаковка
источник

NZ

Nazar Zakap in The Codeby
Я получаю из файла
источник

NZ

Nazar Zakap in The Codeby
массив длина, байт, длина, байт, и т.д.....
источник

NZ

Nazar Zakap in The Codeby
Так ?
источник

D

Dayren in The Codeby
ну все в обратном порядке
первый байтик архива это длина последовательности, второй - то что нужно повторить в этой последовательности
т.е. видишь 5 12, значит на выход пишешь 5 раз 12
источник

D

Dayren in The Codeby
берешь следующие 2 байта
источник

NZ

Nazar Zakap in The Codeby
ок получаю последовательность байтов
источник

NZ

Nazar Zakap in The Codeby
Из массива байтов перехожу в массив пикселей
источник

D

Dayren in The Codeby
ту что была изначально - т.е. исходную картинку
источник

NZ

Nazar Zakap in The Codeby
И из пикселей строю картинку ?
источник

D

Dayren in The Codeby
ну архиваторы обычно работают с файлами
им пофигу что жать
rle хорошо подходит для картинок где что-то на однородном фоне нарисовано (ну например скан текста какого-нибудь - черные буквы на белом фоне. рле хорошо пожмет этот фон, т.к. фон состоит из одинаковых белых пикселей)
источник

NZ

Nazar Zakap in The Codeby
Спасибо
источник

D

Dayren in The Codeby
если ты своему архиватору вместо картинки подсунешь, например, текст то он и его попытается сжать
источник

D

Dayren in The Codeby
правда у него скоре всего получится наоборот
архив будет больше по размеру, чем до "сжатия"
rle для сжатия текста не подходит
источник

D

Dayren in The Codeby
многие графические форматы хранят внутри изображения уже сжатыми
источник

D

Dayren in The Codeby
jpg, png, gif - там уже все пожато
источник

D

Dayren in The Codeby
bmp бывает несжатый. вот его можно пожать этим архиватором
источник