LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

У тебя на один чёрный квадрат 12 байт. Если даже было бы можно подмену констант, то было бы всё равно 10 байт. Выигрышь всего лишь 17%.

Допустим, чёрных и белых квадратов 50/50. В таком случае на один чёрный + один белый квадрат в монохромной картинке приходится 2 бита. Или 0.25 байта. То есть В 48 раз выгоднее (в 40 раз если бы были константы).

Даже если белых квадратов в 7 раз больше, чем чёрных (что неверно для QR-кодов, там не настолько много белых квадратов), то всё равно вышло бы 1 байт на 1 чёрный квадрат и 7 белых. И это всё равно в 10 или 12 раз выгоднее.

Обычный монохромный bmp, даже не png, вообще без никакого сжатия, рвёт представление квадратами как Тузик грелку. Не верю я, что может быть иначе (для QR-кодов). Это физически невозможно. Чтобы векторное представление выигрывало растровое, белых квадратов должно быть в ДЕСЯТКИ раз больше, чем чёрных (и это без сжатия, со сжатием там будет речь о сотнях и тысячах раз уже). Покажите мне такой QR-код.

Вы как-то неправильно вставляете картинку в PDF. Возможно, она не монохромная. Возможно, вместо генерации маленькой картинки (чтобы 1 квадрат = 1 пиксель) и её растягивания, вы делаете большую картинку.

Вот это надо фиксить, а не изобретать свои алгоритмы сжатия. Даже руками (в смысле без высокоуровневых либ) отредактировать PDF и заменить условный placeholder на самодельно скрафченную картинку (если библиотека генерации PDF прям никак не даёт вставлять картинки), будет проще и надёжнее изобретения своего алгоритма сжатия прямоугольников. Вы не туда копаете просто.

Исправление KivApple, :

У тебя на один чёрный квадрат 12 байт. Если даже было бы можно подмену констант, то было бы всё равно 10 байт. Выигрышь всего лишь 17%.

Допустим, чёрных и белых квадратов 50/50. В таком случае на один чёрный + один белый квадрат в монохромной картинке приходится 2 бита. Или 0.25 байта. То есть В 48 раз выгоднее (в 40 раз если бы были константы).

Даже если белых квадратов в 7 раз больше, чем чёрных (что неверно для QR-кодов, там не настолько много белых квадратов), то всё равно вышло бы 1 байт на 1 чёрный квадрат и 7 белых. И это всё равно в 10 или 12 раз выгоднее.

Обычный монохромный bmp, даже не png, вообще без никакого сжатия, рвёт представление квадратами как Тузик грелку. Не верю я, что может быть иначе (для QR-кодов). Это физически невозможно. Чтобы векторное представление выигрывало растровое, белых квадратов должно быть в ДЕСЯТКИ раз больше, чем чёрных (и это без сжатия, со сжатием там будет речь о сотнях и тысячах раз уже). Покажите мне такой QR-код.

Вы как-то неправильно вставляете картинку в PDF. Возможно, она не монохромная. Возможно, вместо генерации маленькой картинки (чтобы 1 квадрат = 1 пиксель) и её растягивания, вы делаете большую картинку.

Вот это надо фиксить, а не изобретать свои алгоритмы сжатия. Даже руками отредактировать PDF и заменить условный placeholder на самодельно скрафченную картинку (если библиотека генерации PDF прям никак не даёт вставлять картинки), будет проще и надёжнее изобретения своего алгоритма сжатия прямоугольников. Вы не туда копаете просто.

Исправление KivApple, :

У тебя на один чёрный квадрат 12 байт. Если даже было бы можно подмену констант, то было бы всё равно 10 байт. Выигрышь всего лишь 17%.

Допустим, чёрных и белых квадратов 50/50. В таком случае на один чёрный + один белый квадрат в монохромной картинке приходится 2 бита. Или 0.25 байта. То есть В 48 раз выгоднее (в 40 раз если бы были константы).

Даже если белых квадратов в 7 раз больше, чем чёрных (что неверно для QR-кодов, там не настолько много белых квадратов), то всё равно вышло бы 1 байт на 1 чёрный квадрат и 7 белых. И это всё равно в 10 или 12 раз выгоднее.

Обычный монохромный bmp, даже не png, вообще без никакого сжатия, рвёт представление квадратами как Тузик грелку. Не верю я, что может быть иначе (для QR-кодов). Это физически невозможно. Чтобы векторное представление выигрывало растровое, белых квадратов должно быть в ДЕСЯТКИ раз больше, чем чёрных. Покажите мне такой QR-код.

Вы как-то неправильно вставляете картинку в PDF. Возможно, она не монохромная. Возможно, вместо генерации маленькой картинки (чтобы 1 квадрат = 1 пиксель) и её растягивания, вы делаете большую картинку.

Вот это надо фиксить, а не изобретать свои алгоритмы сжатия. Даже руками отредактировать PDF и заменить условный placeholder на самодельно скрафченную картинку (если библиотека генерации PDF прям никак не даёт вставлять картинки), будет проще и надёжнее изобретения своего алгоритма сжатия прямоугольников. Вы не туда копаете просто.

Исправление KivApple, :

У тебя на один чёрный квадрат 12 байт. Если даже было бы можно подмену констант, то было бы всё равно 10 байт. Выигрышь всего лишь 17%.

Допустим, чёрных и белых квадратов 50/50. В таком случае на один чёрный + один белый квадрат в монохромной картинке приходится 2 бита. Или 0.25 байта. То есть В 48 раз выгоднее (в 40 раз если бы были константы).

Даже если белых квадратов в 7 раз больше, чем чёрных (что неверно для QR-кодов, там не настолько много белых квадратов), то всё равно вышло бы 1 байт на 1 чёрный квадрат и 7 белых. И это всё равно в 10 или 12 раз выгоднее.

Обычный монохромный bmp, даже не png, вообще без никакого сжатия, рвёт представление квадратами как Тузик грелку. Не верю я, что может быть иначе (для QR-кодов). Это физически невозможно.

Вы как-то неправильно вставляете картинку в PDF. Возможно, она не монохромная. Возможно, вместо генерации маленькой картинки (чтобы 1 квадрат = 1 пиксель) и её растягивания, вы делаете большую картинку.

Вот это надо фиксить, а не изобретать свои алгоритмы сжатия. Даже руками отредактировать PDF и заменить условный placeholder на самодельно скрафченную картинку (если библиотека генерации PDF прям никак не даёт вставлять картинки), будет проще и надёжнее изобретения своего алгоритма сжатия прямоугольников. Вы не туда копаете просто.

Исправление KivApple, :

У тебя на один чёрный квадрат 12 байт. Если даже было бы можно подмену констант, то было бы всё равно 10 байт. Выигрышь всего лишь 20%.

Допустим, чёрных и белых квадратов 50/50. В таком случае на один чёрный + один белый квадрат в монохромной картинке приходится 2 бита. Или 0.25 байта. То есть В 48 раз выгоднее (в 40 раз если бы были константы).

Даже если белых квадратов в 7 раз больше, чем чёрных (что неверно для QR-кодов, там не настолько много белых квадратов), то всё равно вышло бы 1 байт на 1 чёрный квадрат и 7 белых. И это всё равно в 10 или 12 раз выгоднее.

Обычный монохромный bmp, даже не png, вообще без никакого сжатия, рвёт представление квадратами как Тузик грелку. Не верю я, что может быть иначе (для QR-кодов). Это физически невозможно.

Вы как-то неправильно вставляете картинку в PDF. Возможно, она не монохромная. Возможно, вместо генерации маленькой картинки (чтобы 1 квадрат = 1 пиксель) и её растягивания, вы делаете большую картинку.

Вот это надо фиксить, а не изобретать свои алгоритмы сжатия. Даже руками отредактировать PDF и заменить условный placeholder на самодельно скрафченную картинку (если библиотека генерации PDF прям никак не даёт вставлять картинки), будет проще и надёжнее изобретения своего алгоритма сжатия прямоугольников. Вы не туда копаете просто.

Исходная версия KivApple, :

У тебя на один чёрный квадрат 12 байт. Если даже было бы можно подмену констант, то было бы всё равно 10 байт.

Допустим, чёрных и белых квадратов 50/50. В таком случае на один чёрный + один белый квадрат в монохромной картинке приходится 2 бита. Или 0.25 байта. То есть В 48 раз выгоднее (в 40 раз если бы были константы).

Даже если белых квадратов в 7 раз больше, чем чёрных (что неверно для QR-кодов, там не настолько много белых квадратов), то всё равно вышло бы 1 байт на 1 чёрный квадрат и 7 белых. И это всё равно в 10 или 12 раз выгоднее.

Обычный монохромный bmp, даже не png, вообще без никакого сжатия, рвёт представление квадратами как Тузик грелку. Не верю я, что может быть иначе (для QR-кодов). Это физически невозможно.

Вы как-то неправильно вставляете картинку в PDF. Возможно, она не монохромная. Возможно, вместо генерации маленькой картинки (чтобы 1 квадрат = 1 пиксель) и её растягивания, вы делаете большую картинку.

Вот это надо фиксить, а не изобретать свои алгоритмы сжатия. Даже руками отредактировать PDF и заменить условный placeholder на самодельно скрафченную картинку (если библиотека генерации PDF прям никак не даёт вставлять картинки), будет проще и надёжнее изобретения своего алгоритма сжатия прямоугольников. Вы не туда копаете просто.