Gambas-it

Gambas3 => Programmazione => Topic aperto da: vigiot - 15 Ottobre 2017, 10:00:14

Titolo: [Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 15 Ottobre 2017, 10:00:14
Salve, eccomi di nuovo
Problemino, vorrei convertire una DrawinArea in Immagine per poi salvarla in pdf.
nel wiki ho trovato : Generare un file immagine da una DrawingArea se non ricordo male da vuotto (che profondamente ringrazio ..   :D)
ho inserito i codici:
Codice: [Seleziona]
Library "libX11:6.3.0"
Private Enum XYBitmap = 0, XYPixmap, ZPixmap
Private Extern XOpenDisplay(display_name As String) As Pointer
Private Extern XAllPlanes() As Long
Private Extern XGetImage(display As Pointer, d As Long, xI As Integer, yI As Integer, wid As Integer, hei As Integer, plane_mask As Long, formatI As Integer) As Pointer
Private Extern XCloseDisplay(display As Pointer)
e poi:
Codice: [Seleziona]
'' Creazione di un'immagine della DrawingArea
Private Sub Crea_Immagine()
  Dim dsp, XImage, dati_imm As Pointer
  Dim im As Image
  Dim st As Stream
  Dim i As Integer

  dsp = XOpenDisplay(Null)
  If dsp = 0 Then Error.Raise("Impossibile aprire una connessione al server X!")
  XImage = XGetImage(dsp, DwgArea1.Handle, 0, 0, DwgArea1.W, DwgArea1.H, XAllPlanes(), ZPixmap)
  If XImage = 0 Then Error.Raise("Impossibile ottenere un 'Puntatore' ai dati dell'immagine della DrawingArea !")
  dati_imm = Pointer@(XImage + 16)
  im = New Image(DwgArea1.W, DwgArea1.H)
  If IsNull(im) Then Error.Raise("Impossibile creare un oggetto 'Image' !")
  st = Memory im.Data For Write
  For i = 0 To im.W * im.H * Len(im.Format)
    Write #st, Byte@(dati_imm + i) As Byte
  Next
  st.Close
  im.Save("/home/franco/Test_Gambas/Casa_Serena/DwgArea1.png", 100)
  XCloseDisplay(dsp)
 
End
Ma qui mi sono arreso poiché mi dà questo errore:
Codice: [Seleziona]
If XImage = 0 Then Error.Raise("Impossibile ottenere un 'Puntatore' ai dati dell'immagine della DrawingArea !")

Ovviamente non ho la più pallida idea di come risolverlo. :-\
Uso Gambas3  ver. 3.5 su Debian 8.9
aiutino ... :'(
Grazie
Titolo: Re:Oibò il puntatore non ce lò !
Inserito da: Gianluigi - 15 Ottobre 2017, 10:10:19
Non ti converrebbe salvare la DrawingArea direttamente in PDF?

 :ciao:

P.S. Cambia il titolo in relazione al contenuto in modo che sia utile in una futura ricerca, grazie.
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vigiot - 15 Ottobre 2017, 12:47:56
Ok fatto.
Mi interessa generare un'immagine poichè le dimensioni della mia Drawing sono di 600x850 pixel ed un pdf generalmente sono di 850x11169
quindi se ho una immagine poi la posso scalare di (600*1,3776,850*1,3776) mi dà come risultato una nuova immagine che riempie il "foglio" in A4
Dopodiché la posso trasformare con CairoPdfSurface  ;)
O almeno questa è la mia idea.
Ma se non ottengo il puntatore tutto il discorso va a ......... :'(
Grazie
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 15 Ottobre 2017, 13:30:18
Innanzitutto vorrei capire alcune cose:

1) Il tuo sistema operativo è a 32-bit o a 64-bit ?

2) Quale distribuzione hai di Linux ?

3) Quale Componente grafico (gb.gtk, gb.qt4, etc...) hai attivato ?
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vigiot - 15 Ottobre 2017, 13:55:23
Debian versione 9.8  Amd 64 con Gambas 3.5.
componente attivato gb.qt4
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 15 Ottobre 2017, 14:07:37
Il problema da te sollevato è capitato anche a qualche altro programmatore.
Uno di loro risolse cambiando l'identificatore di enumeratore all'ultimo parametro attuale della funzione esterna " XGetImage( ) ".

In sostanza devi provare a sostituire l'identificatore " ZPixmap " (usato nell'esempio in Wiki) con " XYPixmap ".
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 15 Ottobre 2017, 14:33:11
...
quindi se ho una immagine poi la posso scalare ...

Non puoi scalare il disegno e poi stamparlo in PDF? Ti ricordo che esiste Paint.Scale  :-\

Dai un'occhiata a questa lezione (http://www.gambas-it.org/wiki/index.php?title=Stampare_il_contenuto_di_una_DrawingArea)

 :ciao:
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vigiot - 15 Ottobre 2017, 14:48:24
Wow !!! :2birre:
Questa lezione è mooolto interessante di sicuro  ci provo. :ok:
Ma per correttezza proverò anche le modifiche suggerite da vuott  8)
Appena posso farò sapere ...
Grazie  :ciao: :ciao:
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 15 Ottobre 2017, 16:05:06
Potrebbe anche agire calibrando in sintonia opportunamente i parametri del metodo " .DrawImage( ) " della Classe ''Paint'' e della proprietà " .Resolution " della Classe Printer.

Infatti, facendo una prova, sono riuscito a far disegnare sull'intera pagina (di dimensioni A4) di un file PDF, una piccola immagine avente all'origine le dimensioni 150x150 pixel.
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vigiot - 16 Ottobre 2017, 00:43:25
Mi spiace ma non funzionano entrambi.  :hatecomputer: :hatecomputer:
 Volevo postare il codice intero (sarebbe interessante provarlo su di un'altra distribuzione)
ma è troppo lungo! supera i 20000 caratteri ammessi
Perché se funziona è colpa mia altrimenti (magari) di qualche libreria ...
Come posso fare? 

Grazie se vorrete provarci
io intanto ... :specchio:
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 16 Ottobre 2017, 00:48:16
Ho effettuato la prova con il codice da te postato, ebbene ora anche a me viene sollevato quell'errore.
E' dunque evidente che c'è qualcosa che va in conflitto con la funzione esterna di X11.
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 16 Ottobre 2017, 02:14:27
Risolto !    :D

Il problema sta nell'espressione: Me.Height = 550 .
In particolare il valore assegnato alla proprietà " .Height " del Form è inferiore al valore assegnato alla medesima proprietà della DrawingArea.

Conservando i valori originali della DrawingArea da te impostati, per eliminare l'errore ho dovuto assegnare alla proprietà "Me.Height" il valore 880.

Va precisato che è necessario anche re-impostare l'ultimo parametro attuale della funzione esterna " XGetImage( ) " con l'identificatore di enumeratore presente nell'esempio della nostra Wiki, ossia: ZPixmap .
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 16 Ottobre 2017, 09:56:29
Mi spiace ma non funzionano entrambi.  :hatecomputer: :hatecomputer:
 Volevo postare il codice intero (sarebbe interessante provarlo su di un'altra distribuzione)
ma è troppo lungo! supera i 20000 caratteri ammessi
Perché se funziona è colpa mia altrimenti (magari) di qualche libreria ...
Come posso fare? 

Grazie se vorrete provarci
io intanto ... :specchio:

Menu Progetto > Crea > Pacchetto sorgenti...(Ctrl+Alt+A) e poi alleghi il progetto Gambas compresso.

 :ciao:
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vigiot - 16 Ottobre 2017, 16:04:10
Non sapevo che si potesse compattare il codice  :-[ :-[
e nella confusione ho aperto un nuovo post. Scusate.
Ma il motivo per cui l'altezza del MainForm è settata a 550 e per problemi di risoluzione del laptop
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vigiot - 16 Ottobre 2017, 16:08:13
Scusa vuott ma a furia di prove devo aver fatto pasticci.
Quello a cui ti riferisci è:

Codice: [Seleziona]
 XImage = XGetImage(dsp, DwgArea1.Handle, 0, 0, DwgArea1.W, DwgArea1.H, XAllPlanes(), ZPixmap)

perché se è cosi mi da ancora errore .... :hatecomputer:
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 16 Ottobre 2017, 16:08:55
Ma il motivo per cui l'altezza del MainForm è settata a 550 e per problemi di risoluzione del laptop

In buon sostanza devi avere cura che la dimensione del Form sia sufficientemente più grande della dimensione della DrawingArea.   (https://www.tomshw.it/forum/s9/smilies/sisi.gif)
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 16 Ottobre 2017, 16:10:15
perché se è cosi mi da ancora errore ....

...pur modificando la dimensione del Form ?
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vuott - 16 Ottobre 2017, 16:17:29
A me il tuo codice funziona con la modifica apportata a Me.Height .

Allego il file immagine generato.
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 16 Ottobre 2017, 17:56:39
Citazione
Menu Progetto > Crea > Pacchetto sorgenti...(Ctrl+Alt+A) e poi alleghi il progetto Gambas compresso.

Non sapevo che si potesse compattare il codice  :-[ :-[
e nella confusione ho aperto un nuovo post. Scusate.
Ma il motivo per cui l'altezza del MainForm è settata a 550 e per problemi di risoluzione del laptop

Così alleghi tutto il progetto ed eviti agli altri di dover ricostruire il progetto.
È una gentilezza che facciamo agli altri per farli lavorare meno.
Aspetto pertanto di vedere il tuo progetto allegato  :D
Oggi mi sento tanto sniper  ;D

 :ciao: :ciao:
Titolo: Re:Generare un file immagine da una DrawingArea
Inserito da: vigiot - 16 Ottobre 2017, 21:25:25
Quasi risolto ...
per generare l'immagine ho provato ...
Codice: [Seleziona]
Private Sub Crea_Immagine()
Dim im As Image
 
' Crea un'immagine delle medesime dimensioni della "DrawingArea"
'  le disegna usando le stesse routine per la drawing ...
  im = New Image(DwgArea1.Width, DwgArea1.Height, Color.White)
  Modulo_Base(im)
  Scrivi_Data(im)
  Scrivi_Mese(im)
  im.Save("/home/franco/Scrivania/test.png", 100)
 
End

Per farne un pdf ..
Citazione
Private Sub Crea_Pdf()
  Dim im As Image
  pdf = New CairoPdfSurface("/home/franco/Scrivania/test.pdf", 210.0, 297.0, "1.5")
 
  Cairo.Begin(pdf)
  im = Image.Load("/home/franco/Scrivania/test.png")
  Cairo.Scale(1, 1)
  Cairo.Source = Cairo.ImagePattern(im, 10, 10)
  Cairo.PaintPrivate Sub Crea_Immagine()
  Cairo.ShowPage
  Cairo.End
End

Ovviamente ho dovuto modificare le sub in modo che Paint.Begin() accettasse un diverso Object a seconda dei casi.
In effetti il pdf lo crea ma..... risulta corrotto quando tenti di visualizzarlo
Santa Polenta ! :'( :'(
.... ritentiamo ...
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 16 Ottobre 2017, 23:37:25
Comincio a pensare che sia il mio Debian abbia qualcosa che non va. :mad:
Non è possibile che il codice su una distro funzioni e nell'altra no!  >:(
Domani installo Ubuntu, poi vediamo. :o
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vuott - 16 Ottobre 2017, 23:38:54
...ma il problema da te sollevato del puntatore nullo, lo hai risolto con la mia indicazione ?
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 17 Ottobre 2017, 14:05:08
No !  :hatecomputer:
ed inoltre non sono riuscito nemmeno a visualizzare l'immagine che hai allegato !! >:(
mi dice che l'estensione image/pdf non è supportata.
Mi sta facendo salire il nervoso, sembra quasi di dover inserire dei controlli in una finestra in GTK+ (verticalbox, orizzontal box ecc.)
Questo "programmino" lo ho già scritto in c per GTK3+, ma come saprai il c e la manipolazione delle stringhe non sono proprio amici :hard:
In compenso non avevo "tribolato" così per creare un pdf ...
Tutto questo per la serie "Se non ti complichi la vita non riesci a star bene"
 Mah...  :'(
Grazie per l'interessamento vuott :)
ed a Gianluigi non temere quando riuscirò a far funzionare come voglio questa "ciofeca" posto il codice
 :ciao: :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 17 Ottobre 2017, 14:51:26
...Gianluigi non temere quando riuscirò a far funzionare come voglio questa "ciofeca" posto il codice

Figurati, era che se invece di postare il solo codice (.pdf) avessi postato il programma, anche se non funzionante, avrei potuto darci un occhio e magari darti un parere.

Parere che comunque ti do lo stesso  ;D
Ti sconsiglierei di "tradurre pedissequamente" in Gambas3 un programma fatto per/con altri codici, ad esempio Gambas ha un componente gb.report2 che serve per fare quanto tu cerchi di fare in modo non gambas like, per non parlare del "nostro" PdfWriter.
Ogni linguaggio di programmazione ha il proprio modo di affrontare i problemi, ti suggerirei di tenerne conto, salvo restando il tuo diritto/piacere a tentare qualunque traduzione passo passo.

 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 17 Ottobre 2017, 16:25:18
Per me la considero una fortuna che qualcun'altro possa esaminare il codice.
Serve a migliorarsi. :D
per quanto riguarda la "trasformazione" sono partito da qui:
Codice: [Seleziona]
        const char *filename = g_strconcat(archivio_pdf_anno_corrente, "/fattura_", numero_fattura_text, NULL);
        print_pdf = true;
        GdkPixbuf *image_2;
        GdkPixbuf *image_2_gs;
        cairo_surface_t *surface;
        cairo_t *cr1;
        cairo_t *cr2;
        int widht = 596 , height = 843;
        surface = cairo_pdf_surface_create(filename, widht, height);
        cairo_pdf_surface_restrict_to_version(surface, CAIRO_PDF_VERSION_1_5);
        //cout<<"Surface..."<<cairo_status_to_string(cairo_surface_status(surface))<<endl;
        cr1 = cairo_create(surface);
        cr2 = cairo_create(surface);
        //cout<<"Prima pagina "<<cairo_status_to_string(cairo_status(cr1))<<endl;
        //cout<<"Seconda pagina "<<cairo_status_to_string(cairo_status(cr2))<<endl;
        drawing_model_part_zero(cr1);
        if (abbiamo_bollo) {
            // l'immagine del bollo
            image_2 = gdk_pixbuf_new_from_xpm_data((const char **)bollo_xpm);
            gdk_cairo_set_source_pixbuf(cr1, image_2, 430, 8);
            cairo_rectangle(cr1,430, 8, 134, 89);
            cairo_fill(cr1);
            g_object_unref(image_2);
        };
        drawing_model_part_one(cr1);
        if (abbiamo_cliente) {
            drawing_model_part_two(cr1);
        };
        cairo_show_page(cr1);
        // seconda pagina
        if (abbiamo_bollo) {
            // l'immagine del bollo
            image_2_gs = gdk_pixbuf_new_from_xpm_data((const char **)bollo_gs_xpm);
            gdk_cairo_set_source_pixbuf(cr2, image_2_gs, 415, 8);
            cairo_rectangle(cr2,415, 8, 171, 114);
            cairo_fill(cr2);
            g_object_unref(image_2_gs);
        };
        seconda_pagina = true;
        drawing_model_part_zero(cr2);
        drawing_model_part_one(cr2);
        drawing_model_part_two(cr2);
        cairo_show_page(cr2);
        cairo_surface_destroy(surface);
        cairo_destroy(cr1);
        cairo_destroy(cr2);
        seconda_pagina = false;
        cout<<"Il file \""<<filename<<"\" è stato scritto correttamente"<<endl;
        print_pdf = false;

C'è da dire che per le operazioni di disegno viene usato cairo e non paint.
un istruzione in cairo per dare un riferimento es.: cairo_move_to (cr,10,10)
qui verrebbe tradotta in : Paint.MoveTo(10,10)
perché l'oggetto in cui vai ad agire lo hai già impostato con Paint.Begin(oggetto_su_cui_disegnare)
Quindi anche modificando sub Es.: Disegna() con Disegna(obj AS Object)
e di conseguenza   la chiamata diveniva Disegna(DrawingArea1) per la DwgArea
o Disegna(pdf) per il pdf appunto (Dim pdf As CairoPdfSurface)
Purtroppo non funzionano allo stesso modo! :hatecomputer:
ciao  :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 17 Ottobre 2017, 17:42:19
Cari Gianluigi e vuott

Ad ogni buon conto posto il codice "corretto" (Prova1_...)
Il risultato come immagine (Test_Dwg3)
il codice in c per fare il mio "Dialogo" (My_Dialog.c)
e l'immagine catturata del mio dialogo in azione(Schermata ....)

 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 17 Ottobre 2017, 19:08:52
Ho provato a decomprimere i tuoi file compressi ma ottengo errore  :-\

 :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 17 Ottobre 2017, 20:51:12
Su Quale ? ???
 :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 17 Ottobre 2017, 20:56:32
Su tutti suppongo, ho provato, anche a me dà errore !!!!!  :hatecomputer: Pazzesco !
Compresso con questo sistema e lo stesso sistema non riesce a decompattarlo !!
Inizio ad avere seri dubbi sull'integrità del mio Debian.  :evil:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vuott - 17 Ottobre 2017, 21:20:44
Inizio ad avere seri dubbi sull'integrità del mio Debian. 

...... (http://i20.photobucket.com/albums/b207/wh00sher/gifs/a_whistle.gif)
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 17 Ottobre 2017, 22:10:21
Inizio ad avere seri dubbi sull'integrità del mio Debian. 

Lo credo anch'io.

Minisini usa Kubuntu, Vuott usa Mint, io uso sia Ubuntu che Xubuntu, con tutti Gambas gira bene col primo senza alcun accorgimento perché KDE usa le librerie QT.

 :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 18 Ottobre 2017, 00:06:08
Ok ma a me è sorto un'altro dubbio, che sia la rete.
Domattina rinvio i file compressi  dal mio amico che usa un'atro gestore se funzionano bene altrimenti
troverò un altro sistema (ma prevede da te tanta pazienza) creerò un pdf, dovrai copia/incolla su un progetto grafico
vuoto e vedere l'effetto che fa.
 Perché io ho decompresso i file non inviati in una cartella, aperto l'IDE->Apri progetto e selezionato la cartella,
Gambas lo ha aperto senza problemi. Quindi non so che dire  ???

 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 09:45:33
Perché invece non riprovi a comprimere solo il progetto facendolo dalla IDE di Gambas (Progetto>Crea>Pacchetto sorgenti) e lo posti?

 :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 18 Ottobre 2017, 09:58:48
E' quello che avevo ed ho rifatto. 8)
ora provo a postarlo, fammi sapere
 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 10:06:15
E' quello che avevo ed ho rifatto. 8)
ora provo a postarlo, fammi sapere
 :ciao: :ciao:

Questa volta ha funzionato, l'ho aperto e ho ottenuto questa fattura (vedi immagine)

 :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 10:45:12
 :ciao: Vigiot,
per prima cosa mi complimento per le tue notevoli conoscenze di programmazione, sei decisamente di un altro pianeta rispetto a me, lo dico perché sia chiaro che le critiche non sono al programmatore ma al programma.  :-*

Fatta la dovuta e sentita premessa, ti dico che fare un programma così in Gambas non ha senso.
Praticamente occupi buona parte del tempo per creare la finestra cosa che Gambas ti offre preconfezionato e in modo migliore con pochi passaggi e niente codice.

Insomma, come avevo già avuto modo di dirti, senza entrare troppo nei particolari anche perché il mio non può che essere un giudizio di superficie, si tratta di un programma non Gambas fatto con il linguaggio Gambas.

Cosa che peraltro non offusca le tue notevoli capacità, sono sicuro che se ti andasse di rimanere a giocare con noi attraverso le tue conoscenze potresti darci una notevole mano a patto che tu sia disposto a studiarti Gambas e a entrare nella sua filosofia.  :D

 :ciao: :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 18 Ottobre 2017, 12:16:51
Grazie per i complimenti, ma sono un po "esagerati" per come la vedo io.
In effetti sono restio ad usare un "form designer" sarà questione di abitudine  ;D 
poi premesso che delle classi e delle propietà in gambas conosco molto, molto poco
ho delle difficoltà a reperire il necessario.
detto questo gambas ha molte carte in suo favore, il programma che avevo scritto
in c per le gtk3 per fare le stesse cose aveva superato di molto le circa 600 righe di codice
sin qui scritte in gambas, ed inoltre il "c" ha una notevole idiosincrasia per trattare le stringhe.
Difatti ogni tanto si "impalla" proprio per il motivo di cui sopra.
come se non bastasse in GTK per posizionare dei controlli dove vuoi tu devi fare dei
veri e propri "virtuosismi".  :hatecomputer:
Finito questo e quando avrò maggiori conoscenze,vorrei cimentarmi nella costruzione di un componente
: Calendario "italiano" con tutte le festività compresa la pasqua. :coder:
non mi hai detto se sei riuscito a far generare l'immagine della drawing con la libreria esterna.
 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vuott - 18 Ottobre 2017, 13:15:57
il "c" ha una notevole idiosincrasia per trattare le stringhe.

In che senso ?
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 13:31:17
Allego le immagini di tutto quello che ottengo col tuo programma che alla fine stampa un'immagine png.
Come puoi vedere non usando il "Gambas like" ottieni immagini sproporzionate.
Ti consiglio di imparare Gambas studiando il codice della IDE e dei componenti scritti in Gambas.
 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vuott - 18 Ottobre 2017, 13:40:21
"Gambas like"
...e che è ?   ???
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 18 Ottobre 2017, 14:01:53
Hai ragione Gianluigi, il problema sta proprio lì.
D'altronde l'immagine che ottieni, a parte qualche ritocco inevitabile, va poi "Scalata"
come fai con Gimp.
La classe Image da quanto l'editor dice non ha una proprietà .Scale
va fatto dopo... :-\

Ma come ti avevo scritto ...
Citazione
... poi premesso che delle classi e delle propietà in gambas conosco molto, molto poco
ho delle difficoltà a reperire il necessario. :-[
In altre parole non so dove reperire il tutto
Per quanto riguarda il "c" e delle mie conoscenze del linguaggio,
io personalmente l'ò trovato tedioso nel manipolare le stringhe, cosa che a è risultata più facile in c++.
Ma questo è solo un mio personalissimo parere.
 :ciao: :ciao: :) :)
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 15:40:59
"Gambas like"
...e che è ?   ???

Hai ragione Gianluigi, il problema sta proprio lì.
D'altronde l'immagine che ottieni, a parte qualche ritocco inevitabile, va poi "Scalata"
come fai con Gimp.
La classe Image da quanto l'editor dice non ha una proprietà .Scale
va fatto dopo... :-\

Ma come ti avevo scritto ...


Io quando parlo di Gambas like mi riferisco al disegno delle finestre per fare un esempio vedere l'allegato

 :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 18 Ottobre 2017, 17:50:00
Se ti ricordi, avevo detto che non riuscivo ad aprire gli archivi compressi che
mi mandate come allegati.  :'(
una soluzione potrebbe essere un e-mail
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 18:06:25
Se ti ricordi, avevo detto che non riuscivo ad aprire gli archivi compressi che
mi mandate come allegati.  :'(
una soluzione potrebbe essere un e-mail

Non avevo capito che ti riferissi ai nostri, pensavo parlassi dei tuoi.
Non vedo soluzione, anche per e-mail sempre un file compresso dovrei inviarti  :-\

Devi risolvere il problema che è solo del tuo OS, io Debian non lo conosco e se non fosse stato per Ubuntu non sarei mai approdato a Linux.

 :ciao:

P.S. Puoi dirmi che errore ti da quando tenti di aprire un file tar?
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 18:22:40
Se ti ricordi, avevo detto che non riuscivo ad aprire gli archivi compressi che
mi mandate come allegati.  :'(
una soluzione potrebbe essere un e-mail

Hai provato col terminale?
Ad esempio supponiamo che tu abbia scaricato il mio file nella tua cartella home apri un terminale e dai il comando:
tar xzvf GambasLike-0.0.1.tar.gz

 :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 18 Ottobre 2017, 18:49:34
Ok funge  ;D ;D
Lo apro poi con Gambas vero?  8) 8)
Grazie
 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 19:04:07
Ok funge  ;D ;D
Lo apro poi con Gambas vero?  8) 8)
Grazie
 :ciao: :ciao:

Si, giusto dalla IDE di Gambas Apri progetto e lo apri come faresti con un tuo progetto.

 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: Gianluigi - 18 Ottobre 2017, 19:38:54
Per me una finestra date chooser così avrebbe più senso...

 :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vigiot - 19 Ottobre 2017, 11:20:28
Si, carina  :2birre:
Nel frattempo ho riflettuto un po sui miei codici, e sono giunto alla conclusione
che devo fare due routine di disegno, una per schermo con paint
ed un'altra per il pdf con cairo, ovviamente importando la libreria "libcairo:2.11301.0"
visto sul wiki Creare_un_file_PDF_con_le_funzioni_esterne_del_API_di_Cairo
... mi ricorda qualcosa ... 8)
Con calma riscrivo .. :coder:
Ci sentiamo
Ciao  :ciao: :ciao:
Titolo: Re:[Risolto o Quasi]Generare un file immagine da una DrawingArea
Inserito da: vuott - 19 Ottobre 2017, 15:41:18
ed un'altra per il pdf con cairo, ovviamente importando la libreria "libcairo:2.11301.0"
visto sul wiki Creare_un_file_PDF_con_le_funzioni_esterne_del_API_di_Cairo
Se può essere utile ai tuoi fini, c'è anche il Componente gb.cairo di Gambas.


Ad ogni modo suggerisco la lettura di questa pagina della nostra wiki:

   https://www.gambas-it.org/wiki/index.php?title=Generare_un_file_immagine_da_una_DrawingArea