Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2013, 15:45
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Ресайзер картинок
Ребят, мб кто сталкивался, нужна либа, которая умеет ресайзить картинки (canvas) с заданием нужной степени сглаживания и использует современные способы оптимизации, такие как потоки и типизированные массивы. Самому писать лениво, подумал, мб есть норм готовые штуки, но ничего пока толкового не нашёл.

И ещё, какие можете посоветовать либы для работы с потоками? Пока остановился на https://github.com/padolsey/operative
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 09.09.2013 в 15:48.
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2013, 16:30
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Дзен-трансгуманист Посмотреть сообщение
kobezzza,
А чем обычный drawImage не устраивает? Смысл убирать в поток? На скрипте оно будет на порядок медленнее нативного программного ресемплинга, и на два порядка медленнее аппаратного. Такая деградация производительности должна быть очень обоснована.

Что касается оптимизаций, то "просто массивы" там и так некуда втыкать - есть только исходный и конечный растр в виде Uint8ClampedArray.
Не нравится результат (чтобы понять, что я имею ввиду достаточно сравнить результат ресайза, например, в фотошопе и через drawImage). Поток мне главным образом нужен, чтобы не лочить интерфейс и показывать статус загрузки. Собственно уже пишу
__________________
kobezzza
code monkey
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2013, 18:38
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Дзен-трансгуманист Посмотреть сообщение
В фотошопе разные есть. Бикубический взял?
Нативная интерполяция на канве, вроде, билинейная, но могу ошибаться.
А хрен его знает Но разница на лицо. Собственно я нашёл алгоритм, качество отличное на выходе, но больно медленно работает. Вот курю, как ускорить можно.
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2013, 21:46
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Получилось сделать хорошую скорость: сейчас алгоритм примерно такой:
изначальная картинка жмётся через drawImage до максимально допустимого размера, а затем жмётся в неск потоков с помощью алгоритма Ланцоша.

http://screencast.com/t/QfD57flZmvE
(1 - оригинальная картинка, drawImage, алгоритм Ланцоша)

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

Завтра, как всё доделаю, могу выложить код, если кому нужно
__________________
kobezzza
code monkey
Ответить с цитированием
  #5 (permalink)  
Старый 09.09.2013, 21:51
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

https://github.com/mailru/FileAPI/bl...leAPI.Image.js
Ответить с цитированием
  #6 (permalink)  
Старый 09.09.2013, 21:54
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от monolithed Посмотреть сообщение
https://github.com/mailru/FileAPI/bl...leAPI.Image.js
У вас тоже не стандартный алгоритм сжатия? Если так, то хде ты был раньше я весь день сегодня с этим возился
__________________
kobezzza
code monkey
Ответить с цитированием
  #7 (permalink)  
Старый 09.09.2013, 23:33
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от kobezzza
У вас тоже не стандартный алгоритм сжатия?
Не могу ответить на твой вопрос, т.к. не я писал
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько неповторяющихся случайных картинок divalinq Общие вопросы Javascript 6 17.12.2012 19:57
Помогите сделать нумерацию картинок в новости DemonXT jQuery 7 23.02.2012 17:08
Загрузчик картинок Livanderiaamarum Общие вопросы Javascript 1 15.01.2012 17:21
Slider с подгрузкой картинок Forpost jQuery 0 02.12.2011 13:03
Как сделать прокрутку картинок Lugan Элементы интерфейса 1 26.06.2009 12:52