Differenze tra le versioni di "Ridurre le dimensioni di una immagine con il Metodo ".Scale()" del Componente gb.cairo"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per modificare le dimensioni di una immagine caricata e gestita mediante il Componente gb.cairo, bisognerà utilizzare il Metodo "''.Scale( )''" della Classe statica "''Cairo'...")
 
Riga 3: Riga 3:
  
  
Nell'esempio che segue si utilizzeranno due immagini, una delle quali potrà essere ridimensionata rispetto all'altra ruotando in avanti o indietro la rotellina del mouse.
+
Nell'esempio che segue si utilizzeranno due immagini, una delle quali potrà essere ridimensionata rispetto all'altra ruotando in avanti o indietro la rotellina del mouse. <SUP>&#91;[[#Note|nota 1]]&#93;</sup>
 
<BR>L'immagine risultante delle due caricate sarà visualizzata da un Oggetto "''ImageView".
 
<BR>L'immagine risultante delle due caricate sarà visualizzata da un Oggetto "''ImageView".
 
  Private iv As ImageView
 
  Private iv As ImageView
Riga 60: Riga 60:
  
 
=Note=
 
=Note=
[1] Vedere anche:
+
[1] Vedere anche: [[Caricare_un_Oggetto_''Image''_direttamente_in_una_''ImageView''_con_gb.cairo|Caricare un Oggetto ''Image'' direttamente in una ''ImageView'' con gb.cairo]]

Versione delle 15:32, 5 giu 2020

Per modificare le dimensioni di una immagine caricata e gestita mediante il Componente gb.cairo, bisognerà utilizzare il Metodo ".Scale( )" della Classe statica "Cairo".
L'uso di detto metodo non procurerà uno stiramento dell'immagine.


Nell'esempio che segue si utilizzeranno due immagini, una delle quali potrà essere ridimensionata rispetto all'altra ruotando in avanti o indietro la rotellina del mouse. [nota 1]
L'immagine risultante delle due caricate sarà visualizzata da un Oggetto "ImageView".

Private iv As ImageView
Private sc As Float = 1.0


Public Sub Form_Open()
 
 With iv = New ImageView(Me) As "ImV"
   .X = 0
   .Y = 0
   .W = Me.W
   .H = Me.H
 End With
 
 Immagine(0.0)
  
End

Public Sub ImV_MouseWheel()
 
 If Mouse.Delta == 1 Then
   Immagine(0.005)
 Else
   Immagine(-0.005)
 Endif
 
End


Private Procedure Immagine(vf As Float)
 
 Dim im1, im2 As Image
 
 im1 = Image.Load("/percorso/della/prima/immagine")
 
 ' Carica la seconda immagine avente, ad esempio sfondo bianco che viene reso trasparente:
 im2 = Image.Load("/percorso/della/seconda/immagine").Erase(Color.White)
 
 sc += vf
 
 With Cairo
   .Begin(im2)
   .Scale(sc, sc)
   .Source = .ImagePattern(im1, 0, 0)
   .Paint
   iv.Image = .Device
   .End
 End With
 
 Me.Caption = CStr(sc)
  
End


Note

[1] Vedere anche: Caricare un Oggetto Image direttamente in una ImageView con gb.cairo