Поворотное изображение или div с javascript? - PullRequest
3 голосов
/ 29 ноября 2010

Я работаю над веб-приложением, которое должно позволять пользователю перетаскивать и вращать изображение.

Перетаскивание решается с помощью перетаскиваемого пользовательского интерфейса jQuery.

Но как мне повернуть изображение на странице?Мои изображения в основном цветные прямоугольники.Я использовал div s, чтобы нарисовать их на странице, но как их повернуть?

Это нормально, если они поворачиваются только на 22, 5-45-67, 5-90 градусов

Так чтоЯ думаю о 3 решениях

  1. Использование Canvas

    Проблема: поддержка IE

  2. Использование div s

    Проблема: для поворота также требуется холст

  3. PHP GD

    Это единственная надежда, которая осталась.

    Как это может работать:Приложение будет предварительно отображать (22,5 * х) повернутые версии исходного изображения.Таким образом, они будут готовы, когда пользователь захочет повернуть изображение.

Пожалуйста, помогите.Любые предложения приветствуются

Ответы [ 4 ]

5 голосов
/ 29 ноября 2010

Одним из возможных решений является использование графической векторной библиотеки JavaScript , которая может автоматически использовать альтернативу canvas при использовании в IE.

Рафаэль действительно хороший, попробуйте:

Вы можете найти больше информации о ротации с Рафаэлем здесь:

1 голос
/ 29 ноября 2010

Вы не можете манипулировать изображением напрямую с помощью Javascript, кроме изменения их размера (и это технически сделано с помощью CSS, а не Javascript ...).Лучшее решение - использовать Raphaël ;это позволит вам не только перетаскивать, но и перетаскивать, и он также построен с использованием JQuery.

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

1 голос
/ 29 ноября 2010

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

...