Ridurre le dimensioni di una immagine con il Metodo ".Scale()" del Componente gb.cairo
Da Gambas-it.org - Wikipedia.
Versione del 5 giu 2020 alle 15:36 di Vuott (Discussione | contributi)
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.
L'immagine risultante delle due caricate sarà visualizzata da un Oggetto "ImageView". [nota 1]
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