Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.05.2017, 16:55
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

Сохранение Canvas в grayscale 8bit jpeg или png
Форум расскажи есть ли какие либо готовые библиотеки или простой способ вывода на сохранение в javascript на стороне клиента в 8 битный jpeg ? Если в двух словах я написал на яс приложение для обрезания фоток с вебкамеры и сохранением их. Собственно потребовалось их преобразовать в grayscale 256 формат. Как убрать цвет я с легкостью нашел, но таки сам сохраненный файл так и остается 32 битным (24 на цвет 8 на альфу), а есть нужда сохранять именно 8 бит т.б. 256 grayscale. Ткните носом в хорошую инфу или помогите реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 24.05.2017, 17:27
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

В гугле отыскалась небольшая кучка конвертеров которые способны сохранить файл в скажем gif или pdf, но вот что бы конкретно как сделать вывод файла jpeg с параметрами мне пока не удалось найти.
Ответить с цитированием
  #3 (permalink)  
Старый 24.05.2017, 17:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Taifune
сделать вывод файла jpeg с параметрами
JPEG, это не индексированная палитра.

https://habrahabr.ru/post/173773/
Ответить с цитированием
  #4 (permalink)  
Старый 24.05.2017, 17:46
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

Я знаю. Мне не требуется индексированная палитра. Мне нужен файл в таком вот формате. посути jpeg ли это будет или png не суть важно, но не gif. но нужно 256 оттенков серого.
Ответить с цитированием
  #5 (permalink)  
Старый 24.05.2017, 17:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Taifune
но нужно 256 оттенков серого
JPEG и PNG, это 24-битный цвет в любом случае. Чего вы хотите, из из серой 24 битной палитры вычесть лишнее? А смысл?
Ответить с цитированием
  #6 (permalink)  
Старый 24.05.2017, 18:02
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

Сообщение от laimas Посмотреть сообщение
JPEG и PNG, это 24-битный цвет в любом случае. Чего вы хотите, из из серой 24 битной палитры вычесть лишнее? А смысл?
Вот давайте не будем про смысл )) Смысл - Есть. Заказчик требует. Файл что я загрузил выше имеет 8 битную палитру при формате PNG. Так что ваше утверждение что это в любом 24-битный цвет я не могу принять всерьез. Единственное что этот файл был получен с использованием сторонних приложений (Xnview), а мне нужно на прямую получать при сохранении 8 битный файл в javascript. Все это происходит на стороне пользователя, без загрузки на сервер если что.
Ответить с цитированием
  #7 (permalink)  
Старый 24.05.2017, 18:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

PNG бывает двух форматов - PNG24 и PNG8. Canvas не работает с индексированной палитрой, вы не сможете получить такую палитру на выходе. Нужна индексированная, значит конвертируйте. Если же ограничить количество оттенков серого в JPEG или PNH24 до 256, то файл при этом как был 24-битным так им и останется.
Ответить с цитированием
  #8 (permalink)  
Старый 24.05.2017, 23:18
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

Сообщение от laimas Посмотреть сообщение
то файл при этом как был 24-битным так им и останется.
Но сторонними средствами у меня есть возможность создать 8 битный Джепег у которого 256 отенков серого.

Сообщение от laimas Посмотреть сообщение
конвертируйте.
Я за этим и пришел.. Расскажите как. Я не знаю как это сделать.
Ответить с цитированием
  #9 (permalink)  
Старый 25.05.2017, 01:28
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Сообщение от Taifune Посмотреть сообщение
Я за этим и пришел.. Расскажите как. Я не знаю как это сделать.
Походу надо будет выбрать простейшую в реализации спецификацию подходящих форматов и попиксельно формировать этот самый формат.
Я о том, что задача редкая и найти готовое решение будет проблематично.
Так что рекомендую отговорить заказчика от использования компактного формата или выпросить у него дополнительно пару недель рабочего времени чтобы запилить свой конвертор.
Ответить с цитированием
  #10 (permalink)  
Старый 25.05.2017, 03:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Taifune
у меня есть возможность создать 8 битный Джепег у которого 256 отенков серого
Что за глупости, то что в изображении будет 256 оттенков (хотя из-за артефактов присущих этому формату добиться точно заданного количества вряд ли получится) не означает, что оно превратилось в 8 битное индексированное. Индексированная палитра, это вообще иное.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возьму урок по svg или canvas фнимации imedia Элементы интерфейса 0 30.05.2014 01:37
Canvas. Как сделать или вообще нельзя? Вращение рандомизированно изменяемого объекта. Zemsky Общие вопросы Javascript 30 19.12.2013 19:44
Сохранение canvas - что получает сервер. lancer Общие вопросы Javascript 2 26.08.2013 15:26
Что лучше использовать, canvas или svg? Marv Элементы интерфейса 2 22.09.2012 03:40
Аналог wmode=transparent для Canvas или svg lusever Events/DOM/Window 1 15.06.2009 16:05