Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo reducir la escala y mostrar imágenes en controles de imagen o imagen en VB

Cómo reducir la escala y mostrar imágenes en controles de imagen o imagen en VB

Categoría: Computadora/Red gt; Programación gt; Otros lenguajes de programación

Descripción del problema:

El atributo srtetch del control de imagen. deformará la imagen, AutoRedraw y AutoSize del control de imagen no pueden reducir la imagen de acuerdo con el tamaño del control. ¿Se puede usar la función cargar imagen para mostrar una imagen de tamaño fijo?

Análisis:

Se puede implementar en código.

El siguiente código está extraído de un ejemplo que hice antes. Puede consultarlo. imgPreview es un objeto de imagen.

Tamaño de vista previa de tipo privado

sngLeft As Single

sngTop As Single

sngWidth As Single

sngHeight As Single

intZoon como entero

Tipo final

Privado muPreviewSize como PreviewSize

Privado Const cmChangeSize = 1.2

' Alejar

Private Sub Command1_Click()

Con muPreviewSize

.intZoon = .intZoon - 1

.sngHeight = .sngHeight / cmChangeSize

.sngWidth = .sngWidth / cmChangeSize

imgPreview.Stretch = True

imgPreview.Move .sngLeft, .sngTop, .sngWidth, .sngHeight

' Si se ha reducido 9 veces, el botón de alejar no está disponible

If .intZoon lt -9 Then

Command1.Enabled = False

Command2.Enabled = True

Else

Command2.Enabled = True

Finalizar si

Finalizar con

End Sub

' Ampliar

Private Sub Command2_Click()

Con muPreviewSize

.intZoon = .intZoon 1

.sngHeight = .sngHeight * cmChangeSize

.sngWidth = .sngWidth * cmChangeSize

imgPreview.Stretch = True

imgPreview. Mover .sngLeft, .sngTop , .sngWidth, .sngHeight

' Si se ha ampliado 9 veces, el botón de zoom no está disponible

Si .intZoon gt; p>

Command2.Enabled = False

Command1.Enabled = True

Else

Command1.Enabled = True

Fin Si

Termina con

End Sub

Private Sub Form_Load()

Con muPreviewSize

.intZoon = 0

' 0,5

Para el borde de la imagen

.sngHeight = imgPreview.Height 0.5

.sngWidth = imgPreview.Width 0.5

.sngLeft = imgPreview.Left

.sngTop = imgPreview.Top

Terminar con

Finalizar sub