Самый быстрый способ извлечь обрезку из файла JPEG по требованию?

1

Пользователи на моем сайте могут щелкнуть часть фотографии, чтобы получить крупным планом.

В настоящее время у меня есть немного JavaScript, который запускает вызов AJAX скрипту PHP, который использует ImageMagick для извлечения соответствующего урожая.

Могу ли я сделать это лучше, вне PHP? Используя ImageMagick прямо так или иначе?

В настоящее время файлы находятся на том же сервере, что и основной веб-сайт, но из-за ограничений пространства я в процессе перемещения их на отдельный сервер, так что вам нужно сделать вызов между ними как-то.

Фотографии различаются по размеру, некоторые - 1600x1200 и только 200 КБ, другие - 24MP+ 20 МБ + оригиналы.

  • 0
    Лучше, чем заставлять сервер выполнять жесткую обработку изображений, пусть это будет на стороне клиента (JS). Проверьте холст html5 + js обрезать: tympanus.net/codrops/2014/10/30/resizing-cropping-images-canvas
  • 0
    Отправка файла размером 20 МБ клиенту не выглядит как удобство для пользователя ...
Показать ещё 2 комментария
Теги:
imagemagick
crop
jpeg

1 ответ

3
Лучший ответ

Используя ImageMagick, у вас есть два варианта:

  1. Обрезайте изображение во время его загрузки. Сначала загружается загруженное изображение.
  2. Загрузите изображение, а затем обрезайте его. То, что изначально загружено, - это полное изображение.

Первый метод является более эффективным и быстрым.

Этот метод заключается в добавлении информации области изображения к входному изображению (изображениям) в квадратных скобках ([...]) следующим образом:

convert wizard:[130x150+80+80] -resize 200% wiz-head.png

Это 130x150 фрагмент размером 130x150 пикселей со смещением 80 пикселей от верхнего левого угла оригинала, встроенного wizard: изображение. Здесь оба изображения бок о бок, wizard: (слева) и обрезанный раздел, размер которого изменяется на 200%:

Изображение 174551Изображение 174551

Если вы хотите обрезать JPEG, вы должны использовать что-то вроде:

   convert some.jpeg[330x250+180+280] -resize 300% output.png
  • 0
    Благодарю. И каков наилучший способ использовать это в сценарии PHP? Должен ли я использовать php.net/manual/en/book.imagick.php , или я могу ускорить его с помощью прямого доступа командной строки к IM, как в вашем примере?
  • 0
    @Codemonkey: Извините - на этот вопрос я не компетентен. На вашем месте я бы разработал + провел несколько тестов с вашей средой и протестировал изображения, а затем принял решение.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню