RMagick, prospettiva

Ciao a tutti,
mi chiamo Alex e sono nuovo del mondo rails!!
Devo ammettere che e’ veramente un gran bel framework e mi ci
sono trovato davvero bene. Ora sto facendo delle prove con
RMagick, e nonostante mi sono letto tutta la documentazione
non riesco a trovare il modo di deformare un’immagine per poter
dare l’effetto della prospettiva.
Un’immagine vale piu’ di mille parole:

Devo semplicemente ottenere la seconda immagine, ma esiste un modo
per poterlo fare!?

Spero in voi.

Grazie
Alex

Qui trovi la documentazione: http://www.imagemagick.org/RMagick/doc/

Dovresti trovare facilmente ciò che cerchi. Se anche qui avevi già guardato,
dovrai creare la trasformazione a mano.

Il 02/06/08, Ale Z. [email protected] ha scritto:

Ti ringrazio, ma leggere la guida è stata la prima cosa che ho fatto,
ancor prima di installare la gemma… ma non riesco a trovare cio’ che
fa per me.
Cosa intendi per la trasformazione a mano!?

Oscar Del ben wrote:

Qui trovi la documentazione: http://www.imagemagick.org/RMagick/doc/

Dovresti trovare facilmente ci� che cerchi. Se anche qui avevi gi� guardato,
dovrai creare la trasformazione a mano.

Grazie ancora per il supporto che mi stai offrendo, ma anche gli esempi
li
ho spulciato con attenzione…
Forse non mi sono spiegato bene, perche’ vedo che non riusciamo a
capirci.
Ti allego una nuova immagine, forse si capisce meglio:

Io ho una classica immagine rettangolare - la prima a sinistra che vedi
nella foto che ho linkato - che poi voglio trasformare deformandola come
vedi nella seconda foto a destra.

Sinceramente non so come si possa chiamare questo procedimento (anche
perchè se lo avessi saputo non stavo a disperarmi qui =D ), so solo che
in poche parole vorrei trasformare l’immagine da rettangolare a
trapezoidale…

Oscar Del ben wrote:

Dovresti provare ad agganciare multipli effetti per ottenere il
risultato
che vuoi. Conosci per caso il nome della trasformazione che vuoi
ottenere?

eccoti comunque qualche esempio reale
http://rmagick.rubyforge.org/portfolio1.html
http://rmagick.rubyforge.org/portfolio2.html
http://rmagick.rubyforge.org/portfolio3.html

In questo caso ho finito gli aiuti. Purtroppo se non si trova il modo
nella
documentazione è difficile. Prova a vedere se c’è qualche mailing list per
rmagick o qualcosa di più generale.

2008/6/2, Ale Z. [email protected]:

Dovresti provare ad agganciare multipli effetti per ottenere il
risultato
che vuoi. Conosci per caso il nome della trasformazione che vuoi
ottenere?

eccoti comunque qualche esempio reale
http://rmagick.rubyforge.org/portfolio1.html
http://rmagick.rubyforge.org/portfolio2.html
http://rmagick.rubyforge.org/portfolio3.html

Il 02/06/08, Ale Z. [email protected] ha scritto:

domanda sciocca.
Hai controllato la versione? Nella 2 hanno apportato altri effetti.

altra domanda sciocca.
Hai controllato se si può fare con imagemagick (o chi per lui)? Se
l’effetto non lo fa “l’applicativo” a cui si appoggia rmagick…

Ciao Michele.

risposta alla seconda domanda sciocca: si!
Il comando imagemagick :
convert rails.png -matte -virtual-pixel transparent -distort
Perspective ‘0,0,0,0 0,90,0,90 90,0,90,25 90,90,90,65’ rails2.png

L’effetto è un tipo di distorsione (distort) della prospettiva (ah,
visto che inglese?)

La pagina di esempi è:Distorting -- IM v6 Examples

Ciao Michele

Sei un grande Michele, solo che avevo gia’ trovato la soluzione con
quest’altro metodo:
http://studio.imagemagick.org/RMagick/doc/image1.html#distort

L’unico problema che ancora ho è il fatto che non mi ritaglia
l’immagine, ma la ‘stira’… Ora posto il problema per spiegarmi
meglio…

Ecco qua:

Cacchio, non posso impuntarmi qui!!!

Michele C. wrote:

Prova a dare un’occhiata qui:
http://studio.imagemagick.org/RMagick/doc/image1.html#distortion_channel

p.s. si tratta di rmagick 2.
p.s. ovviamente voglio vedere il risultato :slight_smile:

Ciao Michele.

Prova a dare un’occhiata qui:
http://studio.imagemagick.org/RMagick/doc/image1.html#distortion_channel

p.s. si tratta di rmagick 2.
p.s. ovviamente voglio vedere il risultato :slight_smile:

Ciao Michele.

Ciao Michele,
grazie per il tuo immenso aiuto che purtroppo è arrivato in ritardo…

Finalmente dopo quasi mezza giornata di ricerche su google, ho trovato
la soluzione che ora riporto nel caso in cui servisse a qulcun altro.

La funzione è:
@img.distort(Magick::PerspectiveDistortion, “0,0,0,0 0,90,0,90
90,0,90,25 90,90,90,65”, true)

Grazie cmq a tutti!!

Michele C. wrote:

risposta alla seconda domanda sciocca: si!
Il comando imagemagick :
convert rails.png -matte -virtual-pixel transparent -distort
Perspective ‘0,0,0,0 0,90,0,90 90,0,90,25 90,90,90,65’ rails2.png

L’effetto è un tipo di distorsione (distort) della prospettiva (ah,
visto che inglese?)

La pagina di esempi è:Distorting -- IM v6 Examples

Ciao Michele

Ciao a tutti!!

Ecco come ho risolto il problema grazie all’ottimo staff di RMagick!!

require ‘RMagick’
BORDER = 20
img = Magick::Image.read(‘casper.jpg’).first
img.border!(5, 5, “black”)
cols = img.columns
rows = img.rows
img.border!(BORDER, BORDER, “none”)

angolo originale nuovo angolo

points = [BORDER, BORDER, BORDER, BORDER, #
nordovet
BORDER+cols,BORDER, BORDER-60+cols,BORDER+20, #
nordest
BORDER+cols,BORDER+rows, BORDER-60+cols,BORDER-20+rows, #
sudest
BORDER, BORDER+rows, BORDER, BORDER+rows] #
sudovest
img2 = img.distort(Magick::PerspectiveDistortion, points)

checkerboard = Magick::Image.read(“pattern:checkerboard”) { self.size =
“#{img2.columns}x#{img2.rows}”
}
result = checkerboard.first.composite(img2, Magick::CenterGravity,
Magick::OverCompositeOp)
result.display

Ora ho un altro problema, cioè quello di portare la mia applicazione
sviluppata in OSX Leopard in Windows Server 2003, ma credo che
aprirò un nuovo topic in merito.

Salutiiiiiiiiiiii

Scusate non si legge bene. Provo a re-incollarlo meglio:

require ‘RMagick’
BORDER = 20
img = Magick::Image.read(‘casper.jpg’).first
img.border!(5, 5, “black”)
cols = img.columns
rows = img.rows
img.border!(BORDER, BORDER, “none”)

angolo originale nuovo angolo

points = [BORDER, BORDER, BORDER, BORDER, #
nordovet
BORDER+cols,BORDER, BORDER-60+cols,BORDER+20, #
nordest
BORDER+cols,BORDER+rows, BORDER-60+cols,BORDER-20+rows, #
sudest
BORDER, BORDER+rows, BORDER, BORDER+rows] #
sudovest
img2 = img.distort(Magick::PerspectiveDistortion, points)

checkerboard = Magick::Image.read(“pattern:checkerboard”) { self.size =
“#{img2.columns}x#{img2.rows}”
}
result = checkerboard.first.composite(img2, Magick::CenterGravity,
Magick::OverCompositeOp)
result.display

Speriamo si veda meglio ora
A-ri-ciaooo

Ragazzi, ho appena aperto un blog, in cui parlo anche di come deformare
un’immagine come sopra riportato.

http://n-solutions.it/Blog/

Salutiiii

2008/6/20 Ale Z. [email protected]:

Ragazzi, ho appena aperto un blog, in cui parlo anche di come deformare
un’immagine come sopra riportato.

http://n-solutions.it/Blog/

Hai fatto un ottimo lavoro, complimenti!
E poi adesso devo provare la storia dei popcorn la prossima volta che mi
trovo con i miei amici :smiley:

Non posso far altro che farti i complimenti. Ottimo lavoro.

Grazie, ma non è altro che un piccolo ringraziamento alla rete
che è sempre pronta a darti un aiuto nelle fasi problematiche!! =)

In pratica ti trascina l’immagine originale?
Dovresti passargli il parametro “trasparent” e mi sa che devi
trasformarla in png o gif, se non ricordo male, il formato jpeg non
supporta la trasparenza.

Fai una prova al volo e trasforma l’immagine in png.

P.S. poi fai “girare” l’esempio. Io oltre ad aver letto la
documentazione non sono andato oltre.

Ciao Michele.