# Anteprima di un disegno vettoriale su FileChooser

**URL:** <https://www.ruby-forum.com/t/anteprima-di-un-disegno-vettoriale-su-filechooser/184494>\
**Category:** IT\
**Created:** [March 3, 2010, 12:52pm UTC](https://www.ruby-forum.com/t/anteprima-di-un-disegno-vettoriale-su-filechooser/184494 "2010-03-03T12:52:50Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![maidireale](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8797f3/32.png) [@maidireale](https://www.ruby-forum.com/u/maidireale)\
**Post date:** [March 3, 2010, 12:52pm UTC](https://www.ruby-forum.com/t/anteprima-di-un-disegno-vettoriale-su-filechooser/184494/1 "2010-03-03T12:52:50Z")

</div>

Vorrei che alla selezione di un file in un FIleChooser si possa vedere  
una anteprima di un file vettoriale (dxf in particolare).  
COme suggerite di procedere?

---

<div class="post-metadata">

**Author:** ![maidireale](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8797f3/32.png) [@maidireale](https://www.ruby-forum.com/u/maidireale)\
**Post date:** [March 3, 2010, 1:41pm UTC](https://www.ruby-forum.com/t/anteprima-di-un-disegno-vettoriale-su-filechooser/184494/2 "2010-03-03T13:41:03Z")

</div>

premesso che non ho mai affrontato il tuo problema specifico, posso  
provare ad indirizzarti su un approccio di massima:

- per il caricamento del file: potresti usare ajax (cerca “ajax upload”  
per trovare maggiori info) e fare un upload asincrono. in questo modo  
avrai il file disponibile sul server, e potrà essere usato terminato il  
caricamento.

- per il file dxf, non ho idea se esista un modo di visualizzarlo sui  
vari browser; potrebbe richiedere l’installazione di un plugin sui vari  
client, ammesso che esista. eventualmente, ma non so se esiste qualche  
strumento/libreria, potresti convertire “automaticamente” il file dxf  
caricato via ajax in qualche formato immagine (per esempio jpg o png), e  
visualizzare quello. quando salverai la form, per visualizzarlo anche  
successivamente (per esempio in edit), vorrà dire che quando salverai la  
form di primo inserimento, dovrai registrare sia il dxf che l’immagine.

speri di averti aiutato, ciao,  
A.

---

<div class="post-metadata">

**Author:** ![maidireale](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8797f3/32.png) [@maidireale](https://www.ruby-forum.com/u/maidireale)\
**Post date:** [March 3, 2010, 6:08pm UTC](https://www.ruby-forum.com/t/anteprima-di-un-disegno-vettoriale-su-filechooser/184494/3 "2010-03-03T18:08:55Z")

</div>

Grazie Andrea.

Ho dimenticato a precisare che l’applicazione Ã¨ locale, per cui non ho  
server.  
Al posto dell’ “Upload Asincrono” posso utilizzare i thread?

Per il dxf: quindi l’idea Ã¨ quella di “convertire” il file in una  
immagine, salvare da qualche parte detta img e mostrarla in anteprima?  
Se pÃ² fÃ … !!

Vediamo come posso risolvere.

P.S: credi che posso fare tutto con Ruby?

---

<div class="post-metadata">

**Author:** ![maidireale](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8797f3/32.png) [@maidireale](https://www.ruby-forum.com/u/maidireale)\
**Post date:** [March 3, 2010, 7:27pm UTC](https://www.ruby-forum.com/t/anteprima-di-un-disegno-vettoriale-su-filechooser/184494/4 "2010-03-03T19:27:03Z")

</div>

On 03/03/2010 18:08, Alessandro B. wrote:

> Ho dimenticato a precisare che l’applicazione è locale, per cui non ho  
> server.

ops! ho _illogicamente_ dato per scontato che stessimo parlando di  
un’applicazione web 😛 in tal caso vale il discorso AJAX ed il fatto che  
giri in locale non è un problema, perchè sarebbe comunque coinvolto un  
webserver, anche minimale, come mongrel o webrick.

> Al posto dell’ “Upload Asincrono” posso utilizzare i thread?

non saprei, quale tecnologia stai applicando? gira via web o stai usando  
qualche libreria grafica?

> Per il dxf: quindi l’idea è quella di “convertire” il file in una  
> immagine, salvare da qualche parte detta img e mostrarla in anteprima?  
> Se pò fà … !!

beh, concettualmente ne sono abbastanza sicuro, a prescindere dagli  
strumenti in gioco 😉

> P.S: credi che posso fare tutto con Ruby?

a occhio direi di si, ma è una domanda vaga; come sempre dipende dallo  
scopo che vuoi raggiungere, _come_ vuoi farla in termini di utilizzo  
finale (web app o applicazione desktop?), ed anche gli eventuali  
_requisiti_ da soddisfare (hardware, configurazione software,  
_fissazioni_ del cliente, etc…).  
tanto per divagare e fare un esempio: PHP è nato per lo sviluppo web, ma  
può essere usato per scrivere programmi desktop (tramite GTK), ma non  
credo che sia la scelta più appropriata per questi casi, esistono  
tecnologie e linguaggi che si adattano meglio, ad esempio ruby! 🙂

concludendo, partendo dal fatto che tu abbia un’idea complessivamente  
chiara, scegli ciò che ritieni più indicato 🙂

ciao,  
A.

---

<div class="post-metadata">

**Author:** ![maidireale](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8797f3/32.png) [@maidireale](https://www.ruby-forum.com/u/maidireale)\
**Post date:** [March 3, 2010, 7:44pm UTC](https://www.ruby-forum.com/t/anteprima-di-un-disegno-vettoriale-su-filechooser/184494/5 "2010-03-03T19:44:37Z")

</div>

Ciao,

non so esattamente che toolkit stai usando. Se il dxf è convertibile in  
un Gtk::Pixbuf lo puoi mostrare in un controllo Gtk::Image in questo  
modo:

file =  
File.new(File.join(Dir.tmpdir,“tempimg#{self.object\_id.to\_s}”),‘w’)  
file \<\< value  
file.close  
self.pixbuf =  
Gdk::Pixbuf.new(File.join(Dir.tmpdir,“tempimg#{self.object\_id.to\_s}”))

(tratto da

> <https://github.com/bolthar/freightrain/blob/master/lib/extensions/gtk/widgets/gtk_image.rb>

)

dove value è un array di byte contenente l’ immagine. Per avere il tutto  
asincrono inserisci il tutto in un Thread.new (pericoloso, specie con Qt  
dove sarebbe bene usare i suoi thread, peccato che il wrapper ruby (per  
questioni più che legittime) non li implementi).

Che toolkit usi? Puoi fornire più dettaglio riguardo la tua  
applicazione?

–  
Andrea D.

> **[GitHub - bolthar/freightrain: Ruby desktop development made easy](https://github.com/bolthar/freightrain)**
>
> Ruby desktop development made easy. Contribute to bolthar/freightrain development by creating an account on GitHub.

> **[using (IMHO)](https://usingimho.wordpress.com)**
>
> Andrea Dallera 's blog
