Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как изменить качество canvas.toDataURL('image/png')? (https://javascript.ru/forum/misc/76147-kak-izmenit-kachestvo-canvas-todataurl-%27image-png%27.html)

Demath 09.12.2018 11:09

Как изменить качество canvas.toDataURL('image/png')?
 
Подскажите, как изменить качество canvas.toDataURL('image/png')?

Нужно оптимизировать/уменьшить длину строки base64, генерируемой canvas.toDataURL('image/png'). Что-то типа js-оптимизатора png, который в виде base64.

Знаю, что в случае canvas.toDataURL('image/jpeg') можно задавать качество от 0 до 1, но не подходит, т.к. у меня картинки с прозрачным фоном :(

laimas 09.12.2018 11:28

canvas.toDataURL('image/jpeg', 0.5), по умолчанию 0.95 и это для JPEG, а PNG это практически несжатый формат.

Alexandroppolus 09.12.2018 13:46

Если очень хочется, то только вручную
Взять getImageData и по этим данным сотворить png

j0hnik 09.12.2018 18:06

сохраните и сожмите тут
https://tinypng.com/

Demath 09.12.2018 18:27

Цитата:

Сообщение от j0hnik (Сообщение 500131)
сохраните и сожмите тут
https://tinypng.com/

:)

уже нашел pngquantjs (отлично сжимает png прямо в браузере),
помогите подрихтовать, чтобы функция принимала png в виде base64 и возвращала base64.


Часовой пояс GMT +3, время: 05:36.