Можно ли обрезать фотографию, используя только клиентский JavaScript?
Когда я пытался найти такой инструмент, часть JavaScript всегда использует DHTML, чтобы просто позволить пользователю выбирать, какую область изображения обрезать, а затем отправляет эту информацию в сценарий на стороне сервера (например, ASP, PHP), чтобы фактически выполнить урожай.
Я понимаю, что JavaScript не может создавать файлы или запрашивать их, однако я думаю, что обходные пути должны быть возможны. Что касается ввода, я хочу, чтобы файл JavaScript содержал URL-адрес изображения. Это просто, и вы можете легко создать элемент <image>
для его отображения. Что касается вывода, я надеялся на решение URI данных .
Несколько решений существуют, однако, когда я пытаюсь их использовать (http://jsfiddle.net/sfjsfid/skm6V/1/), я получаю ошибку:
Uncaught Error: SECURITY_ERR: исключение DOM 18
Причина, по которой это происходит, заключается в том, что спецификация гласит, что эта ошибка должна генерироваться при запросе изображения из домена, отличного от того, где размещена страница.
Есть ли какой-либо другой способ иметь чисто клиентское JavaScript-решение для обрезки изображений, которые могут приходить из другого домена?
Если я попытаюсь использовать данные URI вместо изображения из другого домена (http://jsfiddle.net/VX2z2/),, это работает правильно. Однако, чтобы иметь возможность использовать URL-адрес изображения в качестве входных данных, мне необходимо преобразовать это как-то в URI данных. Использование canvas не сработает из-за проблем безопасности, о которых я уже говорил. Даже если я найду веб-сервис, который смог бы использовать, он тоже не сработает, потому что тогда я отправлю Ajax запрос к внешнему домену, что является еще одной угрозой безопасности, заблокированной браузером.
Размещение собственной версии веб-службы или хостинг-кода на стороне сервера недоступно.
Есть еще идеи? Или единственный вариант принять данные URI в качестве ввода?