Autore Topic: [RISOLTO]Ridimensionare una Picture in una gridview  (Letto 966 volte)

Offline clabe69

  • Gambero
  • **
  • Post: 50
    • Mostra profilo
[RISOLTO]Ridimensionare una Picture in una gridview
« il: 29 Settembre 2012, 17:16:27 »
Salve; avrei bisogno di inserire delle immagini all'interno di una gridview.

Così riesco a inserire la foto, ma se ha dimensioni superiori al posto riservatogli (100,100), esce dai margini.
Come faccio a ridimensionare l'immagine, in modo che riesca a visualizzarla correttamente?

Codice: gambas [Seleziona]


  DIM iPic AS Picture
  
  iPic = NEW Picture

  iPic = Picture.Load(PathImage)
  GridView1[x, 1].Picture = iPic



Grazie.
« Ultima modifica: 29 Settembre 2012, 18:34:47 da clabe69 »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Ridimensionare una Picture in una gridview
« Risposta #1 il: 29 Settembre 2012, 18:03:15 »
Come faccio a ridimensionare l'immagine, in modo che riesca a visualizzarla correttamente?
Bisogna stirare l'immagine, così riducendola.

Avevo dunque pensato una cosa di questo genere:
Codice: gambas [Seleziona]

Public Sub ...........()

 Dim p As Picture
 Dim i As New Image

  i = i.Load("/percorso/del/file/immagine")

  With GridView1[0, 0]
    i.Stretch(.W, .H)   ' riduciamo l'immagine sulla base delle dimensioni della cella 0, 0
    p = i.Picture    ' convertiamo l'immagine in una "Picture"
    .Picture = p     ' e la carichiamo nella cella 0, 0
End With

.............


Però, non capisco perché, non funziona: l'immagine non viene stirata.
« Ultima modifica: 14 Gennaio 2014, 15:49:06 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 clabe69

  • Gambero
  • **
  • Post: 50
    • Mostra profilo
[RISOLTO]Re: Ridimensionare una Picture in una gridview
« Risposta #2 il: 29 Settembre 2012, 18:34:09 »
Grazie a te ho trovato come fare:

Codice: gambas [Seleziona]

Public Sub ...........() 
 
Dim p As New Picture 
Dim i As New Image 
 
 i = i.Load("percorso_immagine_da_mostrare").Stretch(100, 100)    'Quì carica l'immagine già ridotta 
 
 With GridView1[0, 0] 
   p = i.Picture    ' convertiamo l'immagine in una "Picture" 
   .Picture = p     ' e la carichiamo nella cella 0, 0 
End With 

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [RISOLTO]Re: Ridimensionare una Picture in una gridview
« Risposta #3 il: 29 Settembre 2012, 18:54:48 »
Grazie a te ho trovato come fare:

Codice: gambas [Seleziona]

 i = i.Load("/percorso/del/file/immagine").Stretch(100, 100)    'Quì carica l'immagine già ridotta  


Bravo clabe69 !


Vedi ? Pure un asino come me può far percorrere molta strada !  :-X


Se non vuoi fissare i valori delle dimensioni dell'immagine, ma definirli dinamicamente sulla base delle dimensioni della cella, puoi ovviamente fare così:
Codice: gambas [Seleziona]

 Dim p As Picture
 Dim i As New Image

  With GridView1[0, 0]
 
       i = i.Load("/percorso/del/file/immagine").Stretch(.W, .H)
       p = i.Picture

     .Picture = p
  End With

« Ultima modifica: 14 Gennaio 2014, 15:49:25 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [RISOLTO]Ridimensionare una Picture in una gridview
« Risposta #4 il: 29 Settembre 2012, 19:49:14 »
Se impostare in modo stabile e non automatico le dimensioni dell'immagine non è per te un problema, puoi ridurre molto quel codice con una sola riga, utilizzando il metodo .RichText ed il codice html.
Basterà fare:
Codice: gambas [Seleziona]

Public Sub ...........()

   GridView1[0, 0].RichText = "<IMG src=/percorso/del/file/immagine height=100 width=100>"

End


    ;)
« Ultima modifica: 02 Gennaio 2017, 21:18:03 da Gianluigi »
« 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 milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: [RISOLTO]Ridimensionare una Picture in una gridview
« Risposta #5 il: 29 Settembre 2012, 19:55:02 »
e... funzionera' anche cosi'?:

Codice: gambas [Seleziona]
 With GridView1[0, 0]  

    .Picture = Image.Load("percorso_immagine_da_mostrare").Stretch(.W, .H).Picture 

 End With 


:)

Offline clabe69

  • Gambero
  • **
  • Post: 50
    • Mostra profilo
Re: [RISOLTO]Ridimensionare una Picture in una gridview
« Risposta #6 il: 29 Settembre 2012, 19:59:07 »
OK!
Ho usato una variabile per settare le dimensioni ed o implementato uno zoom con uno Slider.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [RISOLTO]Ridimensionare una Picture in una gridview
« Risposta #7 il: 29 Settembre 2012, 20:45:16 »
e... funzionera' anche cosi'?:

Codice: gambas [Seleziona]
 With GridView1[0, 0]  

    .Picture = Image.Load("percorso_immagine_da_mostrare").Stretch(.W, .H).Picture  

 End With  


:)

Sì, funziona.
Bravo, milio !
Questa soluzione riduce il codice e permette l'automatico adattamento.
Molto bene.
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: [RISOLTO]Ridimensionare una Picture in una gridview
« Risposta #8 il: 30 Settembre 2012, 12:57:19 »
Se impostare in modo stabile e non automatico le dimensioni dell'immagine non è per te un problema, puoi ridurre molto quel codice con una sola riga, utilizzando il metodo .RichText ed il codice html.

Non avevo studiato bene la cosa: si può ottenere un dimensionamento automatico anche usando l'html:
Codice: gambas [Seleziona]

 With GridView1[0, 0]
     .RichText = "<IMG src=/percorso/del/file/immagine height="  & .W & " width="  & .H & ">"
 End With

Qundi anche con l'uso dell'html  :D abbiamo ottenuto la riduzione del codice e l'automatismo del dimensionamento dell'immagine sulla base delle dimensioni della cella.
« Ultima modifica: 02 Gennaio 2017, 21:18:37 da Gianluigi »
« 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. »