Frage

Ich möchte überprüfen können, ob das Bild genau eine bestimmte Größe oder Höhe hat oder ob es quadratisch ist.

Im Validierungsblock des Modells has_attachment, wenn ich versuche, darauf zuzugreifen image_size, width, oder height, es kommt immer als null heraus.

Ich habe die Frage auch gestellt Hier wenn Sie weitere Einzelheiten wünschen.

War es hilfreich?

Lösung

Ja, müssen Sie ein wenig, um hacken, um es zu arbeiten, aber nicht so viel. Die Anpassung von attachment_fu eigenen Bildprozessor:

 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

Andere Tipps

Sie haben nicht angegeben, welche Sprache und System, das Sie gerade arbeiten.

Doch für die meisten Web-Frameworks, denke ich, dass der normale Weg, dies zu tun, indem Sie Bild Magie . Versuchen Sie, die zu identifizieren Funktion. .

Sie einen Blick auf Mini-Magick genommen haben?

Sie können git clone es von hier:

http://github.com/probablycorey/mini_magick/tree/master

Wenn Sie über git lernen, diese Links finden Sie unter:

http://git.or.cz/course/svn.html (Crash-Kurs mit git, im Vergleich zu Subversion)

http://github.com/guides/git-screencasts (Github Screencasts)

Es ist ein Ruby-Wrapper um die ImageMagick-Funktionen (nicht sicher, ob attachment_fu diese intern verwendet), aber es ist absolut Sprünge und Grenzen besser als RMagick (RMagick extrem aufgebläht ist, viele Speicherprobleme). Anywho, werden Mini-Magick lassen Sie all die Dinge tun, einige Sie brauchen, und dann. Schauen Sie sich die Readme aufgeführt auf dem GitHub Link oben, und es werden Ihnen die Verminderung auf, wie es zu benutzen.

Hier ist ein Ausschnitt:

#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)

Ich denke, Ihnen fehlen erforderliche Gems, die installiert werden sollten, um attachment_fu zum Ändern der Bildgröße zu verwenden.Ich habe mit dem attachment_fu-Plugin gearbeitet, das von den folgenden Edelsteinen abhängt

  1. rmagick-2.11.0

  2. image_science-1.2.0

Stellen Sie sicher, dass Sie die oben genannten Gems installiert haben und nehmen Sie Änderungen an der Breite und Höhe im has_attachment vor, dann können Sie die Änderungen sehen.

Viel Glück !

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top