цветорегулировка в canvas
при преобразовании картинки в канвас (масштабирование поворот обрезка )происходит ухудшение качества, подскажите где можно почитать по исправлению данной проблемы....?
|
Читайте про то как устроен Фотошоп.
|
Подумал что не совсем точно указал направление. Читайте про Корел или Иллюстратор, там проблематика очевиднее.
"Суть такова". Пикселы в процессе трансформации пиксельного изображения рождаются заново из старых пикселов. То есть картинка рендерится вновь, новые пикселы генерируются из старых пикселов, при этом на 1 новый пиксел может потребоваться до 16 старых, а в военное время и того больше. Короче трансформация пикселов проблема необоримая. Ее можно лишь сделать менее заметной, но ресурсов тогда потребуется гораздо более заметно. Грубо говоря вы должны или сохранять все операции как набор команд, а затем оптимизировав их применять за 1 присест; или вы должны работать с таким пикселяжем, который чтобы испортить надо присесть раз стопицот. В ФШ по первому варианту устроен smart object - это такой специальный слой-контейнер, или слой-документ, который может содержать векторные и пиксельные данные, а вся работа ведется с его "отпечатком", то есть stamp'ом, который рандерится каждый раз заново из содержания слоя. Поэтому новые пикселы отпечатка всегда в первой инкарнации. Это принцип векторной графики - она тоже рендерится в пикселы, иначе ее не увидеть, но рендерится _каждый раз заново_ из оригинальных данных. А когда вы рендерите пикселы из пикселов и затем пикселы из пикселов из пикселов из пикселов и тп - вот тогда у вас четкотуха и превращается в кал. Ну вот, оценили масштаб проблемы? Следовательно есть дешевое решение - пользоваться инструментом культурно. То есть понимать что каждый лишний поворот или подгонка масштаба обойдется потерей четкотухи еще на пи пополам. А для тупых есть ФШ онлайн. ЗЫ Да, вы можете поднимать контраст анизотропных областей, но все равно это будет выглядеть как гавно. Попробуйте unsharp mask. Должны быть уже либы на js для канваса. |
По технике. В ФШ эшелонированная система кеширования. Превью и ундо работают с экранным кешем. То есть когда вы открываете в ФШ файл, его оригинальные пикселы записываются в срач-диск (типа виндового швопа), а на экран выводятся отрендеренные из тех пикселов - пикселы, по которым вы собственно и наблюдаете все изменения. После того как трансформация применена, она записывается в срач-диск как дополнительные пикселы, но не целиком, а только тот кусок который был затронут и только этот кусок заново рендерится в кэш. Размер кусков пользователь может задать в настройках. Разумеется если вы уменьшили или повернули всю картинку - то сохранены будут все куски. И только когда вы сохраняете пикселы - они переписываются из срача в файл. Короче говоря геморрой шопесец.
|
спасибо за развернутое описание.
тогда как обрабатывают изменения картинки браузеры? т.е изменение размера, поворот не сказываются на отображаемом качестве картинки. вот как бы просто получить скриншот нужного кусочка изображения попробовал http://evanw.github.io/webgl-filter/ к вырезанному изображению - не улучшилось. браузер делает это намного лучше. но как? |
Вы бы хоть пример показали а то если честно не ясно о чём идет речь.
|
Часовой пояс GMT +3, время: 13:43. |