Gestione immagini

Voglio provare rails e per farlo ho deciso di fare una copia del mio
sito (attualmente in python)

Il sito ha due pagine, una è la home e qua nulla di difficile, la
seconda è dinamica e gestisce una galleria di immagini. Qualcuno sa
darmi delle dritte o indirizzarmi su qualche tutorial per la gestione
delle immagini (con creazione di anteprime) in ruby con un occhio di
riguardo a rails?

Grazie Michele.

Acts_as_attachment ti permette di fare l’upload di immagini e ti fa le
thumbnail automagicamente, anche se io preferisco usare Rmagck
(acts_as_attachment fa uso di questa libreria)

Per visualizzare le immagini viva viva lightbox 2.0 (anche se non
è strettamente correlato a rails :wink: )

Bella

jek

Se non ho capito male, Acts_as_attachment si appoggia su un db. In
realtaà le immagini sono già presenti sul disco. Non voglio memorizzare
immagini su un campo BLOB.

Attualmente mi sono organizzato cosi.
Tutte le immagini sono salvate su hard disk. Ho uno script python che
crea le thumbnail e le salva in un’altra directory (mantenendo la
struttura delle directory delle immagini originale) e scrivendo sul db
le infomrazioni dell’immagini (*dimensioni per scalare l’immagine, il
tipo di immagine e come chiave il percorso della stessa).
Le gallerie sono le directory in cui sono presenti le immagini. Quando
un utente entra in una galleria io gli mostro le thumbnail già salvate
sul disco, cosi evito di dover creare dinamicamente ad ogni accesso le
thumbnail (anche di un’ottantina di immagini a galleria).
Se clicca su un’anteprima gli mostro l’immagine alla dimensione
migliore, cioè non quella originale, che raramente è inferiore al
monitor, ma quella che può visualizzare sullo schermo senza dover
scrollare su e giù (per visualizzare le immagini utilizzo jQuery ed una
sua estensione che ha preso spunto da Lightbox 2 ;o) ).
Quindi dovrei utilizzare qualche libreriea (probabilmente RMagick) per
creare le anteprime da salvare su disco e la stessa per visualizzare
l’immagine all’utente.

*Nel creare l’anteprima dell’immagine calcolo le possibili dimensioni
che posso ottenere scalando l’immagine senza deformarla.

P.S. se potessi darti l’indirizzo del sito… è più facile a dirsi che a
farsi.

Michele C. ha scritto:

Se non ho capito male, Acts_as_attachment si appoggia su un db.
Puoi anche usare il file system come storage. E scegliere quante
thumbnail di che dimensioni avere. Queste vengono generate quando
carichi l’immagine la prima volta sul server.
scrollare su e giù (per visualizzare le immagini utilizzo jQuery ed una
sua estensione che ha preso spunto da Lightbox 2 ;o) ).

Amo jQuery, ma non amo mischiare le tecnologie, quindi su Rails vado
sempre di prototype + scriptaculous. Come ti trovi con jQuery on Rails?

Il 05/06/07, Giovanni I. [email protected] ha scritto:

sempre di prototype + scriptaculous. Come ti trovi con jQuery on Rails?
sinceramente non capisco perchè sia stato scelto prototype.
è un framework vecchio, incompatibile con il resto del mondo.
pieno di bachi negli effetti. (effetto blind per esempio)
x marketing? è + famoso e allora… non so proprio.

Massimiliano Balestrieri ha scritto:

Amo jQuery, ma non amo mischiare le tecnologie, quindi su Rails vado
sempre di prototype + scriptaculous. Come ti trovi con jQuery on Rails?
sinceramente non capisco perchè sia stato scelto prototype.
è un framework vecchio, incompatibile con il resto del mondo.
pieno di bachi negli effetti. (effetto blind per esempio)
x marketing? è + famoso e allora… non so proprio.
E’ stato scelto perché è stato scritto da uno che fa parte del core team
di rails :slight_smile:
Cmq il baco nell’effetto blind, se è quello che penso io, lo correggi
racchiudendo il contenuto che vuoi blindare in un

.

Io prego ogni giorno che sostituiscano prototype con jquery ma la vedo
improbabile come cosa :slight_smile:

Non uso ancora Rails (se non per fare i tutorial). jQuery l’ho usato con
python (mod_Python/Apach 2.2, per il template Cheetah e come db
Postgresql).
Mi sa che non sono all’altezza di Ruby on Rails. RMagick non ne vuole
sapere di funzionare ne su Linux (so che utilizzo sul server, distro
Debian etch) ne su Windows xp (sul quale ho provato per mera curiosità ).
Sto seriamente perdendo colpi. Faccio veramente fatica a capire anche il
funzionamento di Ruby, anche le base, ad esempio come faccio ad
includere una libreria (ad esempio ActiveRecord)?

Il 05/06/07, Giovanni I. [email protected] ha scritto:

Cmq il baco nell’effetto blind, se è quello che penso io, lo correggi
racchiudendo il contenuto che vuoi blindare in un

.

ho dovuto creare un menu su questa base:
http://www.blazenewmedia.com/articles/creating-a-dynamic-navigation-menu

esempio:
http://www.cssdev.com/articles/menu/final/

apri e chiudi 15 volte europe. vedrai che l’effetto si mangia man mano
l’altezza del div.

se fosse un problema di div fammelo sapere… ma non penso.

la soluzione è stata passare a jquery.

On 6/5/07, Giovanni I. [email protected] wrote:

Massimiliano Balestrieri ha scritto:

Amo jQuery, ma non amo mischiare le tecnologie, quindi su Rails vado
sempre di prototype + scriptaculous. Come ti trovi con jQuery on Rails?
sinceramente non capisco perchè sia stato scelto prototype.
Io prego ogni giorno che sostituiscano prototype con jquery ma la vedo
improbabile come cosa :slight_smile:

perchè non pensate di fare un contributo a rails? di certo non è sotto le
vostre
capacità.

Grazie David W…

On 6/5/07, Michele C. [email protected] wrote:

Non uso ancora Rails (se non per fare i tutorial). jQuery l’ho usato con
python (mod_Python/Apach 2.2, per il template Cheetah e come db
Postgresql).

Se ti trovi bene con Python, magari ti conviene Django. Ho sentito
cose molto positive a proposito.

Mi sa che non sono all’altezza di Ruby on Rails. RMagick non ne vuole
sapere di funzionare ne su Linux (so che utilizzo sul server, distro
Debian etch) ne su Windows xp (sul quale ho provato per mera curiosità).
Sto seriamente perdendo colpi. Faccio veramente fatica a capire anche il
funzionamento di Ruby, anche le base, ad esempio come faccio ad
includere una libreria (ad esempio ActiveRecord)?

irb(main):001:0> require ‘rubygems’
=> true
irb(main):002:0> require ‘active_record’
=> true

Necessario ‘rubygems’ per le librerie installate come gem.


David N. Welton

Linux, Open Source Consulting

Django l’ho provato e m’è pure piaciuto. Ho provato anche cherrypy anche
questo m’è piaciuto, forse anche di più perché lascia più spazio al
programmatore. C’è anche TurboGears (mai provato ma ne cantano le lodi).
In Python ci sono molti framework di buon livello. Il fatto è che Rails
sta spopolando e m’ha incuriosito. Lo stesso ruby m’ha incuriosito,
cosi, visto che volevo provare qualcosa di nuovo…
Ancora non so se adotterò Rails o un qualunque altro framework, mi trovo
bene a scrivermi le istruzioni una per una (sono all’antica?).
Per il sito mi sono creato due classi, una accede alla base dati e
l’altra serve a creare le pagine html. Non è un vero MVC ma mi sono
fatto tutte le funzioni necessarie per la gestione del sito.

On 6/5/07, Michele C. [email protected] wrote:

Se non ho capito male, Acts_as_attachment si appoggia su un db. In
realtaà le immagini sono già presenti sul disco. Non voglio memorizzare
immagini su un campo BLOB.

Se non ti serve che l’utente possa fare l’upload delle immagini,
allora secondo me non ti serve usare un plugin. Altrimenti, invece di
usare act_as_attachment prova il plugin “file_column”. Io l’ho usato
per un mio sito e, con qualche colpo di martello qua e là
(Extreme Enthusiasm), funziona bene, e salva i file
nel file system. Ti fa anche le thumbnail in automatico.

M

On 6/5/07, Michele C. [email protected] wrote:

Non uso ancora Rails (se non per fare i tutorial). jQuery l’ho usato con
python (mod_Python/Apach 2.2, per il template Cheetah e come db
Postgresql).
Mi sa che non sono all’altezza di Ruby on Rails. RMagick non ne vuole
sapere di funzionare ne su Linux (so che utilizzo sul server, distro
Debian etch) ne su Windows xp (sul quale ho provato per mera curiosità).

Come mai? Su Linux non ho mai avuto problemi a fare funzionare
ImageMagick. Perché non ci spieghi in che maniera fallisce di
preciso? Hai verificato che a monte dell’installazione di RMagick ci
sia un’installazione funzionante di ImageMagick? Tipo, hai provato il
comando convert per vedere se funziona bene? per esempio

convert -geometry 100x100 foo.png thumb.png

M

Sto seriamente perdendo colpi. Faccio veramente fatica a capire anche il
funzionamento di Ruby, anche le base, ad esempio come faccio ad
includere una libreria (ad esempio ActiveRecord)?

Per ActiveRecord guarda ad esempio

http://pragdave.pragprog.com/pragdave/2006/07/migrations_outs.html

Ma non è che ti conviene prendere il manuale di Ruby e leggerlo
dall’inizio?

M

On 6/6/07, Michele C. [email protected] wrote:

Per Matteo V…
L’upload da parte dell’utente potrebbe essere un funzione che potrei
implementare più avanti. Ho letto il codice, ma per quel poco che ci
capisco non viene creata la thumb dell’immagine, o sbaglio?

Leggi la doc di file_column. Puoi aggiungere opzioni per fargli creare
le
thumb, ma solo se hai RMagick correttamente installato.

Matteo V. wrote:

Come mai? Su Linux non ho mai avuto problemi a fare funzionare
ImageMagick. Perch� non ci spieghi in che maniera fallisce di
preciso? Hai verificato che a monte dell’installazione di RMagick ci
sia un’installazione funzionante di ImageMagick? Tipo, hai provato il
comando convert per vedere se funziona bene? per esempio

convert -geometry 100x100 foo.png thumb.png

Non l’ho provato.

Prova allora :slight_smile:

M

Ieri ho fatto alcune prove e RMagick si incanta quando

Prova allora :slight_smile:

provato funzione. Ma “img = Magick::Image.read(loaded_image)[0]” non va.
Ho provato sia con ImageMagick che con GraphicsMagick (che dovrebbe
essere la sorella minore). In entrambe i casi rimuovendo e reinstallando
RMagick cosi da ricompilare i sorgenti… Non so che pesci pigliare…
P.S. utilizzo una debian etch ma non uso RMagick fornito con la distro
(ho provato anche quello).

On 6/7/07, Michele C. [email protected] wrote:

Prova allora :slight_smile:

provato funzione. Ma “img = Magick::Image.read(loaded_image)[0]” non va.

Non ci siamo capiti. Prova ad eseguire “convert” dalla riga di comando.
Se
non funziona, non hai speranze che RMagick possa sopperire.

M

Ho provato sia con ImageMagick che con GraphicsMagick (che dovrebbe

no no, ci siamo capiti :).
Ho eseguito il comando convert dalla riga di comando e ha fatto il suo
dovere (ho creato la thumb 100x100 di un’immagine jpg).
E’ solo RMagick che non ne vuole sapere…

Per Matteo V…
L’upload da parte dell’utente potrebbe essere un funzione che potrei
implementare più avanti. Ho letto il codice, ma per quel poco che ci
capisco non viene creata la thumb dell’immagine, o sbaglio?

Matteo V. wrote:

Come mai? Su Linux non ho mai avuto problemi a fare funzionare
ImageMagick. Perch� non ci spieghi in che maniera fallisce di
preciso? Hai verificato che a monte dell’installazione di RMagick ci
sia un’installazione funzionante di ImageMagick? Tipo, hai provato il
comando convert per vedere se funziona bene? per esempio

convert -geometry 100x100 foo.png thumb.png

Non l’ho provato. Ieri ho fatto alcune prove e RMagick si incanta quando
carico il file. Come esempi sono partito da :
http://www.extendi.it/ruby-on-rails/index.php/2007/05/10/rmagick-e-thread/
Alla riga “img = Magick::Image.read(loaded_image)[0]” si blocca.

Ma non � che ti conviene prendere il manuale di Ruby e leggerlo
dall’inizio?
l’idea non è male.

Grazie per gli ottimi consigli.

ok! FUNZIONA…

  1. non ho utilizzato Imagmagick. Con questa libreria (in particolare con
    libmagick9 installato) la load delle immagini si bloccava **

  2. ho deinstallato Imagemagick e le varie librerie (libmagic*) facendo
    attenzione a non rompere l’equilibrio delle dipendenze

  3. ho installato graphicsmagick, graphicsmagick-imagemagick e
    libgraphicsmagick*

  4. Ho installato tramite gem installa RMagick

  5. FUNZIONA.

** si bloccava anche se rimuovevo ImageMagick e installavo
graphicsmagick.

Nell’esempio che avevo recuperato c’è l’istruzione “.strip!” che non è
ancora implementata in graphicsmagick.
Certo un dubbio rimane: sono andato sul sito di graphicsmagick
(http://www.graphicsmagick.org/) e l’ultimo aggiornamento risale ad
ottobre 2005… e la versione di imagemagick da cui ha “preso spunto” è
la 5.5.2, mentre imagemagick ha superato quota 6.
La domanda è molto semplice: siamo certi che graphicsmagick sia un
software attivo? O c’è da aspettarsi che da un giorno all’altro non ci
siano più sviluppatori?

Grazie a tutti per gli ottimi consigli. Spero che questo mio post possa
servire ad altri programmatori ruby.