Autore Topic: [RISOLTO]Ottenere una Picture da una DrawArea con la libreria libImlib2.so.1.4.6  (Letto 2548 volte)

Offline gianfry56

  • Gambero
  • **
  • Post: 78
    • Mostra profilo
Citazione
Fai una controprova: carica un file immagine in un oggetto Image; quindi caricati quei dati dall'oggetto Image in una PictureBox utilizzando quel medesimo comando.

Codice: [Seleziona]
  Dim miaimage As Image

  miaimage = Image.Load("/tmp/prova.jpg")
  PictureBox1.Picture = miaimage.Picture

Funziona perfettamente  :-\
« Ultima modifica: 17 Dicembre 2016, 18:04:17 da gianfry56 »

Offline gianfry56

  • Gambero
  • **
  • Post: 78
    • Mostra profilo
Ad ogni buon fine, preciso che ho usato il Componente gb.qt4

Provato anche con il gb.qt4... stessa solfa  :hard:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Sarebbe da capire se anche a qualche altro accade lo stesso tuo problema.    :-\

C'è qualcuno che può fare il test su questi du codici ?
http://www.gambas-it.org/wiki/index.php?title=Passare_direttamente_ad_un_oggetto_Image_i_dati_grezzi_dei_pixel_di_una_DrawingArea_mediante_le_risorse_del_API_di_X11
Si tratta di verificare se nella PictureBox appare il medesimo disegno che presente nella DrawingArea.


Scusa, il tuo sistema è a 32 bit o a 64 bit ?
« Ultima modifica: 17 Dicembre 2016, 18:17:40 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline gianfry56

  • Gambero
  • **
  • Post: 78
    • Mostra profilo
64 bit

Offline gianfry56

  • Gambero
  • **
  • Post: 78
    • Mostra profilo
Dubito che possa dipendere dalla versione, comunque è:
3.9.90 svn7995

... no, forse ho fatto un nuovo aggiornamento...
a proposito: dove posso leggere la subversion?
« Ultima modifica: 17 Dicembre 2016, 18:15:02 da gianfry56 »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
..sì, non credo anch'io, sebbene  la versione di trunk attualmente è:  8013

Ma non credo c'entri niente.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline gianfry56

  • Gambero
  • **
  • Post: 78
    • Mostra profilo
Beh, mi metto il cuore in pace, tanto si sa che per raggiungere uno scopo, programmando, c'è sempre più di una strada...  :D
Il problema lo risolvo lo stesso...
vedremo se qualcun'altro, provando il codice del wiki, avrà lo stesso problema.
magari è solo la mia 'nuvoletta di fantozzi' quotidiana  ;D ;D ;D

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Con la versione 7988 funziona come potete constatare dalle immagini allegate.

 :ciao:

nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Grazie Gianluigi del test.

Io però non penso che sia legato alla versione trunk, poiché attualmente ho la 8013, che è fino a questo momento - che sto scrivendo - la più aggiornata, eppure mi funziona.

Ho chiesto a ilfurlan di effettuare un test, e lui ottiene lo spesso strano risultato di gianfry56.
Mi ha detto che possiede Mint 18.
Io ho Mint 18 sul portatile, domani voglio fare un test...
« Ultima modifica: 18 Dicembre 2016, 15:08:50 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Grazie Gianluigi del test.

Io però non penso che sia legato alla versione trunk, poiché attualmente ho la 8013, che è fino a questo momento - che sto scrivendo - la più aggiornata, eppure mi funziona.

Ho chiesto a ilfurlan di effettuare un test, e lui ottiene lo spesso strano risultato di gianfry56.
Mi ha detto che possiede Mint 18.
Io ho Mint 18 sul portatile, domani voglio fare un test...

Anche io non credo dipenda dalla versione, ma l'ho messa tanto per informazione.
 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
l'ho messa tanto per informazione.
Hai fatto benissimo !   
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Perché non ne fai una versione per i386 così posso provartelo sullo Xubuntu di mia moglie?
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
...una versione per i386...
Prova i due codici comunque così come sono.
In caso di problemi o di risultato negativo, sostituisci il valore 16, presente una volta nel primo codice e due volte nel secondo, con la seguente funzione: SizeOf(gb.Pointer) * 2)
Pertanto ad esempio nel primo codice avremo:
Codice: [Seleziona]
dati_imm = Pointer@(XImage + (SizeOf(gb.Pointer) * 2))

...prova però prima con l'originario valore 16.
 
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
...una versione per i386...
Prova i due codici comunque così come sono.
In caso di problemi o di risultato negativo, sostituisci il valore 16, presente una volta nel primo codice e due volte nel secondo, con la seguente funzione: SizeOf(gb.Pointer) * 2)
Pertanto ad esempio nel primo codice avremo:
Codice: [Seleziona]
dati_imm = Pointer@(XImage + (SizeOf(gb.Pointer) * 2))

...prova però prima con l'originario valore 16.

Non tento neanche il cambiamento in quanto ottengo errore su entrambi i cidici subito prima:
Codice: [Seleziona]
If Ximage = 0 ...

Spiacente
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Questo problema sorse anche a cocirio e lo rilevò all'interno di questa discussione:

http://www.gambas-it.org/smf/index.php?topic=4029.0

Dunque... ricordo che il problema era legato al valore dell'ultimo parametro della funzione esterna XGetImage( ).
...prova un po' a cambiare il valore dell'enumeratore da ZPixmap a XYPixmap .
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »