Newsgroup: it.comp.lang.javascript
Titolo: Zoomare - non sto dicendo "ingrandire" - una foto

Avete qualche idea (o magari qualche script :D ) da consigliarmi per
zoomare una immagine .
Ciao
PS: differenza fra "ingrandire" e "zoomare": il primo intendo,
cliccando sulla miniatura, aprire l'immagine grande. Quello che
interessa a me è, avendo l'immagine grande, zoomarla tagliandone via
un pezzo mano a mano viene zoommata per non occupare lo schermo ed
oltre


Server side, quindi non con Javascript, crei una pagina zoom (in perl, 
php, asp, o quello che vuoi) e gli passi come parametri l'url 
dell'immagine su cui fare zoom e crop (btw "zoommare" equivale a 
"scalare", quindi ingrandire o rimpicciolire. Eventuali operazioni di 
ritaglio o riquadratura (crop e canvas) sono altre operazioni che 
possono essere abbinate) e le coordinate e le dimensioni del crop.
es:
<img src="/script/zoom.php?uri=test.jpg&x=100&y=100&w=150&h=350" 
alt="Immagine ingrandita e ritagliata"/>
In ogni caso, cerca nelle varie collezioni di librerie e classi presenti 
per il linguaggio server side che hai scelto. Sono sicuro che ci saranno 
stati qualche centinaio di sviluppatori che hanno già scritto qualcosa 
del genere.
LP
-- 

Luca Pascali ha scritto:

Qualcosa di simile è quello che avevo creato con PHP usando librerie
GD: ma ora con la diffusione dell'ADSL è più il tempo che impiegano
le librerie GD a ridimensionare, che non il tempo di scaricamento ADSL
dell'immagine al massimo della risoluzione
Sei d'accordo?
Grazie 
Ciao

 
Prego.
LP
-- 

 Client side, Javascript non č in grado di fare ciň se non con ActiveX
Boh, secondo me un modo c'č, con javascript... che so, inserendo l'immagine
in un elemento con overflow:hidden e lavorare con la dimensione
dell'immagine e il posizionamento della stessa rispetto al contenitore. O
no?
-- 
Nando [?]
Apostolo della Prova

 Sei d'accordo?
Sul tempo, anche se non tutti hanno o usano sempre ADSL, si potrebbe essere
d'accordo. Sulla pesantezza di una pagina con immagini da 15MB l'una no.
'bye

 no?
Anche l'uso di "clip" potrebbe essere utile:
http://www.w3.org/TR/REC-CSS2/visufx.html
'bye


Giusto. Però non è Javascript, bensì HTML+CSS. :-) (non ci avevo pensato 
come alternativa client-side :-P )
In ogni caso, sono d'accordo con te quando hai detto nell'altro post che 
scaricare 15MB di immagine per vedere un solo piccolo quadratino non è 
proprio il massimo della vita.
LP
-- 

 proprio il massimo della vita.
E fare come fa google maps e altre applicazioni similari, no? Lo zooming
avviene client-side, ma poi viene recuperata da server l'immagine
dettagliata.
Ovvero, viene fatto ciò che si dovrebbe fare normalmente programmando su
web. Utilizzare le tecnologie client e server per quello che sono:
complementari.
-- 
"Non è una guerra.. è uno sterminio.. loro stanno a noi come 
uomini contro i  vermi.. draghi contro i lupi.. 
O uomini che cavalcano draghi e lanciano lupi addosso ai vermi!"

 dettagliata.
Molto bello... però molto complicato: non sapete se esistono script
simili già pronti? (Io non me ne intendo molto di javascript :-(
Per i cgi (ditemi voi il linguaggio), sapete di qualche script già
fatto (o almeno di qualche libreria di immagini?)
La soluzione più semplice per ora sarebbe quella HTML+CSS (non sarebbe
poi così male, no?)
Ciao

 Molto bello... però molto complicato:
Non più di tanto. In fondo non fa altro che usare gli stessi strumenti che
ti hanno già suggerito in questo thread (HTML+CSS, CGI in generis).
Certo che se non hai familiartà con gli strumenti, ti conviene lasciar
perdere. E cercare magari su google qualcosa di già pronto all'uso. Io non
ne conosco, ma è altresì vero che non ne ho mai cercati.
-- 
"Se c'è qualcosa di più importante del mio ego su questa nave,
la voglio catturata e fucilata."

 ne conosco, ma è altresì vero che non ne ho mai cercati.
Io invece gli ho cercati e purtroppo non ho trovato niente. Non è che
qualcuno ne conosce?
Ciao

 tranquillamente in PHP.
Non ha senso complicarsi la vita.
La libreria gd e` gia` compilata, non ci sarebbe quasi nessun guadagno
di prestazioni facendo una pagina apposta per ridimensionare l'immagine,
se non per qualche centesimo di secondo per la compilazione dello script
(ma poi rimane cachato sul server, di solito)
Piuttosto direi di creare una volta al primo accesso (e poi cachare su
disco sul server) i vari pezzi dell'immagine, e mandarli al client
quando li richiede. Quello che fa Google Maps (se noti ti passa dei
quadrati di immagine che piano piano vanno a comporre il livello di zoom
che hai scelto).
Bye.
-- 
Alessandro Pellizzari

Alessandro Pellizzari ha scritto:

Spezzare 550 foto ad alta risoluzione?

 Spezzare 550 foto ad alta risoluzione?
Dov'e` il problema? Lo fa il server "on-demand", se fai uno script fatto
bene.
Visto dove siamo, puoi anche predisporre tramite AJAX il server a
mandare il pezzo che serve, e via JS lo mostri e permetti di spostarti a
destra, sinistra, alto, basso senza dover fare reload
Basta decidere quanto grandi li vuoi, i frammenti.
Bye.
-- 
Alessandro Pellizzari

prima di tutto grazie per le risposte
                                                          -    -    -
 -
intanto che mi rispondavate ho provato a trovarmi una soluzione che
facesse al caso mio...
l'esempio funzionante sarà meglio di molte parole:
http://www.foto-fiori.it/coordinate2.htm
Cosa ne dite? naturalmente non è finito: al posto dell'alert si
dovrebbe aprire un overlayer (se così si può chiamare) contenente il
settore di immagine igrandito lato server
L'unica mia perplessità è su Mozilla Firefox: spesso il mouse va
sopra o all'interno dell'area tratteggiata e così non funzionano più
gli eventi onmousemove e onclick dell'immagine. Avete qualche
soluzione?
Grazie davvero
Ciao

 
Guarda a me questo sembra uno dei pochi casi dove l'utilizzo di flash 
potrebbe agevolarti non poco... ora so di essere in un'area di 
sviluppatori dove questi strumenti spesso sono visti con disprezzo (ed 
io x primo nei miei progetti ne riduco l'utilizzo al minimo 
indispensabile) ma potresti risolvere il tuo prob abbastanza facilmente.
Fai un filmato in cui carichi l'immagine esterna, indicata all'swf 
nell'object html/php come varbiabile e poi nel flash includi un paio di 
funzioncine per gestire lo zooming.
Io ho fatto qualcosa di simile e ti garantisco che è una soluzione 
ottima se non hai tempo e competenze per la *via* scripting che, ad ogni 
modo, ritengo superiore in termini di "usabilità".
simple_maL

 sviluppatori dove questi strumenti spesso sono visti con disprezzo 
Al rogo, al rogo! Eretico! Seguace del demonio! Etc etc..
Guarda, stai tranquillo: Se leggi gli archivi di questo NG, scoprirai quanto
spesso e volentieri Flash è stato consigliato come valida alternativa da
quasi tutti i frequentatori abituali del newsgroup.
Soprattutto, ad esempio, in questioni di gestione suoni; o animazioni di un
certo tipo.
"The right tool for the right job"
-- 
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 quasi tutti i frequentatori abituali del newsgroup.
nel caso specifico pensi anche tu possa essere una valida alternativa?
simple_maL

se aspettate fino a questa sera (sempre che il tempo me lo consenta) vi
mostro lo script fatto e finito con tanto di interazione con le
librerie GD... così mi date un parere su lavoro ed eventualmente
considererò flash
a proposito, qualcuno mi aveva consigliato di usare i CGI e non le GD:
ma non mi ha detto quali librerie usare :-(
Grazie per le risposte datemi!
Ciao

 se aspettate fino a questa sera (sempre che il tempo me lo consenta)
ok... sono andato un po' oltre col tempo
... però alla fine, dopo alcuni intoppi, ce l'ho fatta, ecco qua:
http://www.foto-fiori.it/gallery/564.xml
Per zoomare fate click sulla foto e selezionate il settore desiderato
Ciao!