Domanda

Voglio essere in grado di convalidare l'immagine esattamente con una certa altezza, o se è quadrata.

Nel blocco di convalida del modello che has_attachment, quando provo ad accedere a image_size, width o height, viene sempre visualizzato come nullo.

Ho anche posto la domanda qui se vuoi maggiori dettagli.

È stato utile?

Soluzione

Sì, devi hackerare un po 'per farlo funzionare, ma non così tanto. Adattamento dall'elaboratore di immagini di 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

Altri suggerimenti

Non hai specificato la lingua e il sistema su cui stai lavorando.

Tuttavia, per la maggior parte dei framework Web, penso che il modo standard per farlo utilizzando image magia. Prova la funzione di identificazione. .

Hai dato un'occhiata a mini-magick?

Puoi clonarlo da qui:

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

Se hai bisogno di conoscere git, dai un'occhiata a questi link:

http://git.or.cz/course/svn.html (corso intensivo con git, rispetto alla sovversione)

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

È un involucro di rubini attorno alle funzioni di imagemagick (non sono sicuro se attach_fu lo usi internamente), ma è assolutamente salta e si limita meglio di RMagick (RMagick è estremamente gonfio, molti problemi di memoria). Comunque, la mini-magia ti permetterà di fare tutto ciò di cui hai bisogno e poi alcuni. Dai un'occhiata al README elencato sul link github sopra e ti darà la guida su come usarlo.

Ecco uno snippet:

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

Penso che manchi le gemme dei prerequisiti che dovrebbero essere installate per usare attach_fu per ridimensionare l'immagine. Ho lavorato con il plugin attach_fu che dipende dalle gemme seguenti

  1. RMagick-2.11.0

  2. image_science-1.2.0

Assicurati di aver installato sopra le gemme e apporta modifiche alla larghezza e all'altezza in has_attachment, in modo da poter vedere le modifiche.

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top