Anteprima di un disegno vettoriale su FileChooser

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?

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.

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?

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 :stuck_out_tongue: 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 :wink:

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! :slight_smile:

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

ciao,
A.

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

)

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.