Problema Con Zoom En ScrollArea


Objetivo: Problema Con Zoom En ScrollArea
Hola!

Hace ya bastante tiempo hice este ejemplo. Casi ni me acuerdo de el.

ejemplo_con_scrollarea

En un formulario tengo un ScrollArea con una imagen y un Slider que aumenta el tamaño de la imagen dentro del ScrollArea.
Con el Slider veo que aumenta el tamaño dentro del ScrollArea, pero se crea un efecto raro a la derecha y abajo de la imagen.

Lo vemos si desplazamos la barra horizontal o la lateral del ScrollArea. Hay un problema con el escalado.
Lo que pretendo es que aumente la imagen, pero esa parte no debe verse o no debe existir.

¿ En donde esta el error ?.

¿ Se rellena ese hueco ?.

Saludos


ZoomTux.tar.gz
Descripción:  
Descargar
Nombre del archivo: ZoomTux.tar.gz
Tamaño: 43.9 KB
Descargado: 31 veces
ZoomTux.tar.gz
Descripción:  
Descargar
Nombre del archivo: ZoomTux.tar.gz
Tamaño: 43.9 KB
Descargado: 31 veces
ZoomTux.tar.gz
Descripción:  
Descargar
Nombre del archivo: ZoomTux.tar.gz
Tamaño: 43.9 KB
Descargado: 31 veces

Objetivo: Re: Problema Con Zoom En ScrollArea
Shell:

Es algo relacionado con las escalas, te sale distinto, porque aumentas la zona del rectangulo "mas" que las dimensiones del dibujo escalado.

He probado con esto
hBrush.Scale(dibujo.Width * (sldScale.Value / 100), dibujo.Height * (sldScale.Value / 100))
' Paint.Rectangle(0, 0, dibujo.Width, dibujo.Height)
Paint.Rectangle(0, 0, dibujo.Width * (sldScale.Value / 100), dibujo.Height * (sldScale.Value / 100))

Pero tambpoco sale bien...

Objetivo: Re: Problema Con Zoom En ScrollArea
Hola Julio.

jsbsan escribió: [Ver mensaje]

Es algo relacionado con las escalas, te sale distinto, porque aumentas la zona del rectangulo "mas" que las dimensiones del dibujo escalado.


Correcto, eso es.

jsbsan escribió: [Ver mensaje]

He probado con esto
hBrush.Scale(dibujo.Width * (sldScale.Value / 100), dibujo.Height * (sldScale.Value / 100))
' Paint.Rectangle(0, 0, dibujo.Width, dibujo.Height)
Paint.Rectangle(0, 0, dibujo.Width * (sldScale.Value / 100), dibujo.Height * (sldScale.Value / 100))

Pero tampoco sale bien...


Quizás sea mejor que todo el proceso de dibujo este dentro de Pizarra_Draw().
Actualizarlo con los cambios del slider. E ir tomando operaciones comunes y asignarlas a variable locales.

Como poder se podra aumentar el tamaño de una imagen, supongo.
Creo que antes es mejor que lo haga en un DrawingArea y comprenda el escalado. (Espero entenderlo)
Comenzare por ahí e iré comentando.

Saludos

Objetivo: Re: Problema Con Zoom En ScrollArea
Por ahora he hecho este ejemplo que escala una imagen.
Pero no se que le pasa a las patas y las orejas del búho que hace algo raro...
Sera el filtrado.

Lo cierto es que si tomo la misma imagen y la amplio en otro visor, no sale eso.

escalarimagen

Saludos


EscalarImagen.tar.gz
Descripción:  
Descargar
Nombre del archivo: EscalarImagen.tar.gz
Tamaño: 16.29 KB
Descargado: 28 veces
EscalarImagen.tar.gz
Descripción:  
Descargar
Nombre del archivo: EscalarImagen.tar.gz
Tamaño: 16.29 KB
Descargado: 28 veces
EscalarImagen.tar.gz
Descripción:  
Descargar
Nombre del archivo: EscalarImagen.tar.gz
Tamaño: 16.29 KB
Descargado: 28 veces

Objetivo: Re: Problema Con Zoom En ScrollArea
He cambiado Pizarra_Draw() haciendolo de otra manera, en vez de Paint.Scale, use Brush.Scale

Public Sub Pizarra_Draw()

Dim hBrush As PaintBrush

hBrush = Paint.Image(dibujo)
hBrush.Scale(dibujo.Width * (escala / 100), dibujo.Height * (escala / 100))
Paint.Brush = hBrush
Paint.Rectangle(0, 0, escala * dibujo.Width, escala * dibujo.Height)
Paint.Fill

End


El efecto es el mismo.

Saludos.

Objetivo: Re: Problema Con Zoom En ScrollArea
El problema es el mismo, el tamaño del rectángulo donde se dibuja la imagen. Parece que el rectángulo es un poco mas grande, por poco que sea.
Luego esta la x y la y, no puede ser 0, al menos 1, donde comienza a dibujar.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1048s (PHP: -21% SQL: 121%)
Consultas SQL: 25 - Debug off - GZIP Activado