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


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

Например, я хотел бы разрешить пользователям загружать изображения большого размера, например, 5 МБ, но автоматически уменьшать их размер, например, на 0,5 МБ, перед сохранением на сервере.

Причина в том, что емкость, которую я могу использовать на общем сервере, очень ограничена. Конечно, я могу установить "Максимальный размер загрузки на файл" на небольшой размер, но тогда пользователи, у которых есть изображения большого размера но не знаю, как изменить их размер перед загрузкой, не смогу их загрузить. Я также немного попробовал "кэш изображений", но, похоже, он не сохраняет файлы с именем, атрибутами и в каталоге, указанном в поле CCK image.

Я не знаю, возможно ли достичь такого рода вещей или нет.. Есть идеи?

Author: chinita7, 2012-01-19

4 answers

Кэш изображений - это здорово, но, поскольку он хранит исходный файл, это не сэкономит место. На самом деле, если у вас есть несколько предустановок, это увеличит использование вашего диска, поскольку он создает свои кэши изображений таких размеров.

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

 3
Author: Jimajamma, 2012-01-19 17:03:19

Нужный вам модуль: Максимальный размер изображения

Этот модуль изменит размер загруженных изображений, чтобы они были ниже заданных размеров. Это не стиль изображения или другой модуль уровня представления. Если вы хотите сохранить исходное изображение, вам следует использовать Фильтр изменения размера изображения или стиль изображения. Вариант использования этого модуля - сайты, где пользователи могут загружать очень большие изображения, но вы не хотите/не должны сохранять оригинал.

Это отличается от основного ограничения размера поля изображения в том, что оно будет работать с уже загруженными файлами и импортированным содержимым.

 2
Author: Lee Woodman, 2015-05-26 17:50:22

Поле поле изображения cck (которое зависит от поля файла) предоставляет эту возможность из коробки. Вы добавляете поле файла в свой тип контента, устанавливаете для виджета отображения значение "изображение", а затем при редактировании параметров поля один из параметров называется "Максимальные размеры для изображений". Здесь вы можете установить это значение примерно 600x400 или как вам угодно. Если загружено изображение большего размера, его размер будет автоматически изменен.

 1
Author: sja1, 2014-01-28 09:23:37

Не совсем то, о чем вы просите, но в любом случае: Вы уже открыли для себя способ обработки больших изображений на Drupal: кэш изображений. Если вы можете, переключитесь на хостера с большим объемом хранилища (некоторые предлагают неограниченное пространство).

 -1
Author: BetaRide, 2012-01-19 13:03:15