Как вы проверяете ширину и высоту изображения attachment_fu?
-
20-08-2019 - |
Вопрос
Я хочу иметь возможность проверить, что изображение точно определенного размера или определенной высоты, или если оно квадратное.
В блоке проверки модели , который has_attachment
, когда я пытаюсь получить доступ image_size
, width
, или height
, это всегда получается как null.
Я тоже задал этот вопрос здесь если вы хотите получить более подробную информацию.
Решение
Да, вам нужно немного поднапрячься, чтобы заставить это работать, но не так сильно.Адаптация с помощью собственного графического процессора attachment_fu:
validate :validate_image_size
private
def validate_image_size
w, h = width, height
unless w or h
with_image do |img|
w, h = img.columns, img.rows
end
end
errors.add(:width, "must less than 250px") if w > 250
errors.add(:height, "must less than 250px") if h > 250
end
end
Другие советы
Вы не указали, на каком языке и системе вы работаете.
Тем не менее, для большинства веб-фреймворков, я думаю, что стандартный способ сделать это с помощью магия изображения.Попробуйте определите функцию. .
Вы уже ознакомились с мини-магией?
Вы можете мерзавец клонировать его отсюда:
http://github.com/probablycorey/mini_magick/tree/master
Если вам нужно узнать о git, ознакомьтесь с этими ссылками:
http://git.or.cz/course/svn.html (ускоренный курс с git, по сравнению с subversion)
http://github.com/guides/git-screencasts (скринкасты на github)
Это оболочка ruby для функций imagemagick (не уверен, использует ли attachment_fu это внутренне), но она намного лучше, чем RMagick (RMagick чрезвычайно раздут, много проблем с памятью).В любом случае, мини-магия позволит вам делать все, что вам нужно, и даже больше.Ознакомьтесь с README, указанным по ссылке github выше, и там вы получите краткое описание того, как его использовать.
Вот фрагмент:
#For resizing an image
image = MiniMagick::Image.from_file("input.jpg")
image.resize "100x100"
image.write("output.jpg")
#For determining properties of an image...
image = MiniMagick::Image.from_file("input.jpg")
image[:width] # will get the width (you can also use :height and :format)
Я думаю , вам не хватает обязательных элементов , которые должны быть установлены , чтобы использовать attachment_fu для изменения размера изображения .Я работал с плагином attachment_fu, который зависит от следующих драгоценных камней
rmagick-2.11.0
image_science-1.2.0
Убедитесь , что вы установили вышеуказанные драгоценные камни , и внесите изменения в ширину и высоту в has_attachment , тогда вы сможете увидеть изменения .
Удачи !