Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 25.05.2017, 17:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Taifune
Что даст мне эта операция не могу осознать.
То что canvas дает на выходе 32-ное изображение и всякие инсинуации "вот тут другой профессор говорил что канвас не может содержать индексированный цвет" пора прекратить.

Что и как вы там делаете, это можно опустить. Пусть вы получаете изображение после canvas, если в нем его обрезаете и т.п. Далее конвертируете его в индексированную палитру. А запись в файл, это уже согласно формата PNG в котором нужно определить параметры - палитру, указать количество цвета и т.п.
Ответить с цитированием
  #22 (permalink)  
Старый 25.05.2017, 17:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Taifune
Фотографии для программы которая печатает пластиковые карты. с фотографией и подписью.
И зачем же JS напрягать, если это вроде бы как прикладное приложение, а не веб?
Ответить с цитированием
  #23 (permalink)  
Старый 25.05.2017, 17:25
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

Сообщение от laimas Посмотреть сообщение
И зачем же JS напрягать, если это вроде бы как прикладное приложение, а не веб?
Опять эти вопросы "зачем ?". Так и хочется ответить затем. Вообщем это все будет интегрировано в веб-интерфейс.


Сообщение от laimas Посмотреть сообщение
Далее конвертируете его в индексированную палитру. А запись в файл, это уже согласно формата PNG в котором нужно определить параметры - палитру, указать количество цвета и т.п.
А как это сделать?? Что для этого нужно.. Вы говорите об этом как о чем то самом разумеющимся. Как сконвертировать то ? Начнем с того что это мое первое приложение на JS и я до этого с ним вообще не работал. Да и с изображениями на таком уровне я никогда не работал. Я не представляю как здесь можно это реализовать. И в файл как вывести. Вот товарищ подсказал про image/octet-stream. На досуге почитаю разберусь с этим. Печально что нет готовых решений.

И кстати не надо вырывать из контекста

Сообщение от Taifune Посмотреть сообщение
Кстати вот тут другой профессор говорил что канвас не может содержать индексированный цвет, но с другой стороны мне и ненужно его выводить перед сохранением на просмотр. Может есть возможность использовать обычный массив для индексации и перевода в 8 бит?
Я в этой фразе наоборот соглашаюсь с тем что канвас не может хранить индекированную палитру, а не наоборот что хочу ее туда запихать. Я говорю о массиве без вывода на страницу. В массиве то мы можем пересобрать файл как нам надо?

Последний раз редактировалось Taifune, 25.05.2017 в 17:29.
Ответить с цитированием
  #24 (permalink)  
Старый 25.05.2017, 17:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Taifune
Вот товарищ подсказал про image/octet-stream
И что, вы думаете эта операция автоматом догадается сохранить ваш 32 битник в индексированной палитре? Счас.

Сообщение от Taifune
Как сконвертировать то ?
Я вам давал ссылку, но там сохранение в GIF и с использованием уже готовой библиотеки, если нечто готовое для PNG-8 я не знаю.

Самому писать, так это согласно формата. Поэтому и не понятно нахрена вам эти заморочки. Если все-таки предполагается веб, а значит и хранение результата на сервере, то разумнее всего отдать это серверу на растерзание. К примеру, если серверный язык, это РНР, то вашу проблему тремя строками кода решает GD.

Если же на клиенте, и ваше приложение использует стороннее ПО xnview, то почему не им сразу сохранить в индексированной палитре. Есть еще один кандидат решения проблемы ImageMagick - достаточно запустить его командной строкой с параметрами и на выходе получим и обрезанное, и серое, и индексированное, и какое угодно.
Ответить с цитированием
  #25 (permalink)  
Старый 25.05.2017, 19:05
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Сообщение от laimas
И что, вы думаете эта операция автоматом догадается сохранить ваш 32 битник в индексированной палитре? Счас.
Не факт что не догадается. toDataURL выдаёт PNG, но не факт что в разных браузерах это будет один формат. Главное что полученную картинку в виде ссылки в формате data можно смело вставлять в <img/>, в <a/> и в тот же <canvas/> или открывать в той же или новой вкладке. С этой точки зрения разработчик браузера должен хотя бы пытаться оптимизировать размер ради удобства пользователя.
Собственно я рекомендую при разработке браузерного приложения переложить максимум задач на браузер.
Taifune, Таки надо объяснить заказчику что экономить на размере изображений нецелесообразно. Память нынче дешевая. Кроме случая когда данные надо передать по тормознутому модему(у меня самого мобильный интернет) это не актуально. При работе на локальной машине, даже если это мобилка, это значение вообще не имеет. Выгодней в таких случаях задействовать алгоритм типа GZIP, для таких задач уже есть готовые решения под браузер. Рекомендую сосредоточится на этом.
Ответить с цитированием
  #26 (permalink)  
Старый 25.05.2017, 19:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от SV0L0CH
toDataURL выдаёт PNG, но не факт что в разных браузерах это будет один формат. Главное что полученную картинку в виде ссылки в формате data можно смело вставлять в <img/>
Автору не это нужно, а 8-битное изображение. А если говорить об оптимизации, то base64 на это претендовать не может. )
Ответить с цитированием
  #27 (permalink)  
Старый 25.05.2017, 19:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от SV0L0CH
Не факт что не догадается.
Есть надежда, что все-таки получится?
Ответить с цитированием
  #28 (permalink)  
Старый 26.05.2017, 11:54
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

Сообщение от laimas Посмотреть сообщение
И что, вы думаете эта операция автоматом догадается сохранить ваш 32 битник в индексированной палитре? Счас.



Я вам давал ссылку, но там сохранение в GIF и с использованием уже готовой библиотеки, если нечто готовое для PNG-8 я не знаю.

Самому писать, так это согласно формата. Поэтому и не понятно нахрена вам эти заморочки. Если все-таки предполагается веб, а значит и хранение результата на сервере, то разумнее всего отдать это серверу на растерзание. К примеру, если серверный язык, это РНР, то вашу проблему тремя строками кода решает GD.

Если же на клиенте, и ваше приложение использует стороннее ПО xnview, то почему не им сразу сохранить в индексированной палитре. Есть еще один кандидат решения проблемы ImageMagick - достаточно запустить его командной строкой с параметрами и на выходе получим и обрезанное, и серое, и индексированное, и какое угодно.
Ох елки.. Я как раз не думал что одна операция догадается что-то сделать я лишь предположил что это операция сохраняет переданный массив в виде файла и если я таки смогу отконвертировать в массиве в нужный вид то этой командой можно будет файл построить.

Так теперь далее.. Приложение мое не использует XnView. Это приходится пользователю делать ручками.. Фотки эти мне на сервере ненужны. Они идут для другой программы. Которая уже написана( не мной, это законченный продукт и изменить что то в нем нет возможности). Получать файл тут и далее открывать его в той программе и менять битность и сохранять. А про имадж меджик заинтересовали.. Если его запуск по отношению к файлам в папке возможно реализовать через JS может быть это бы и сошло, но вот беда JS очень параноидальный язык и чую получить доступ к командной строке если не невозможно то очень не просто...
Ответить с цитированием
  #29 (permalink)  
Старый 26.05.2017, 12:08
Аватар для Taifune
Интересующийся
Отправить личное сообщение для Taifune Посмотреть профиль Найти все сообщения от Taifune
 
Регистрация: 24.05.2017
Сообщений: 18

Я тут получил файл который выдает уже программа в которую я гружу свои фотки. И о чудо ? Что это за формат ? Что скажете профессор ?

Как мне вам верить ? ) Вы же говорили 8битного джепега не бывает и это вообще чуш)

Последний раз редактировалось Taifune, 26.05.2017 в 12:11.
Ответить с цитированием
  #30 (permalink)  
Старый 26.05.2017, 12:24
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Цитата:
Наиболее распространённым, поддерживаемым большинством доступных кодеков, является последовательное (sequential JPEG) представление данных, предполагающее последовательный обход кодируемого изображения разрядностью 8 бит на компоненту (или 8 бит на пиксель для чёрно-белых полутоновых изображений) поблочно слева направо, сверху вниз.
https://ru.wikipedia.org/wiki/JPEG
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возьму урок по 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