Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2015, 22:40
Интересующийся
Отправить личное сообщение для assan Посмотреть профиль Найти все сообщения от assan
 
Регистрация: 13.07.2010
Сообщений: 27

цветорегулировка в canvas
при преобразовании картинки в канвас (масштабирование поворот обрезка )происходит ухудшение качества, подскажите где можно почитать по исправлению данной проблемы....?
Ответить с цитированием
  #2 (permalink)  
Старый 08.01.2015, 08:56
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Читайте про то как устроен Фотошоп.
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2015, 09:09
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Подумал что не совсем точно указал направление. Читайте про Корел или Иллюстратор, там проблематика очевиднее.

"Суть такова". Пикселы в процессе трансформации пиксельного изображения рождаются заново из старых пикселов. То есть картинка рендерится вновь, новые пикселы генерируются из старых пикселов, при этом на 1 новый пиксел может потребоваться до 16 старых, а в военное время и того больше.

Короче трансформация пикселов проблема необоримая. Ее можно лишь сделать менее заметной, но ресурсов тогда потребуется гораздо более заметно. Грубо говоря вы должны или сохранять все операции как набор команд, а затем оптимизировав их применять за 1 присест; или вы должны работать с таким пикселяжем, который чтобы испортить надо присесть раз стопицот.

В ФШ по первому варианту устроен smart object - это такой специальный слой-контейнер, или слой-документ, который может содержать векторные и пиксельные данные, а вся работа ведется с его "отпечатком", то есть stamp'ом, который рандерится каждый раз заново из содержания слоя. Поэтому новые пикселы отпечатка всегда в первой инкарнации. Это принцип векторной графики - она тоже рендерится в пикселы, иначе ее не увидеть, но рендерится _каждый раз заново_ из оригинальных данных. А когда вы рендерите пикселы из пикселов и затем пикселы из пикселов из пикселов из пикселов и тп - вот тогда у вас четкотуха и превращается в кал.

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

ЗЫ Да, вы можете поднимать контраст анизотропных областей, но все равно это будет выглядеть как гавно. Попробуйте unsharp mask. Должны быть уже либы на js для канваса.

Последний раз редактировалось kostyanet, 08.01.2015 в 09:16.
Ответить с цитированием
  #4 (permalink)  
Старый 08.01.2015, 09:28
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

По технике. В ФШ эшелонированная система кеширования. Превью и ундо работают с экранным кешем. То есть когда вы открываете в ФШ файл, его оригинальные пикселы записываются в срач-диск (типа виндового швопа), а на экран выводятся отрендеренные из тех пикселов - пикселы, по которым вы собственно и наблюдаете все изменения. После того как трансформация применена, она записывается в срач-диск как дополнительные пикселы, но не целиком, а только тот кусок который был затронут и только этот кусок заново рендерится в кэш. Размер кусков пользователь может задать в настройках. Разумеется если вы уменьшили или повернули всю картинку - то сохранены будут все куски. И только когда вы сохраняете пикселы - они переписываются из срача в файл. Короче говоря геморрой шопесец.

Последний раз редактировалось kostyanet, 08.01.2015 в 09:30.
Ответить с цитированием
  #5 (permalink)  
Старый 09.01.2015, 11:34
Интересующийся
Отправить личное сообщение для assan Посмотреть профиль Найти все сообщения от assan
 
Регистрация: 13.07.2010
Сообщений: 27

спасибо за развернутое описание.
тогда как обрабатывают изменения картинки браузеры? т.е изменение размера, поворот не сказываются на отображаемом качестве картинки.
вот как бы просто получить скриншот нужного кусочка изображения

попробовал http://evanw.github.io/webgl-filter/
к вырезанному изображению - не улучшилось.
браузер делает это намного лучше. но как?

Последний раз редактировалось assan, 09.01.2015 в 12:19.
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2015, 02:09
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Вы бы хоть пример показали а то если честно не ясно о чём идет речь.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повтор фото (getUserMedia(),HTML5 Canvas) aspex Элементы интерфейса 1 27.12.2014 16:46
canvas рисование окружности imedia Элементы интерфейса 2 30.05.2014 17:40
Canvas картинка с обесцвечиванием. cheba Общие вопросы Javascript 9 31.05.2013 09:13
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16