Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: lucius en Noviembre 23, 2011, 09:46:46 pm
-
Me gustaria poder redimencionar imagenes en un picture como lo hace el plugin WP e-Commerce de wordpress pero no encuentro nada parecido alguien me tira un link, revisen la forma en que hace la redimension aqui. http://bunker.host22.com/?page_id=4
Creo que lo que hace es reducir la imagen hasta cierto punto osea no la redimenciona exactamente hasta el tamaño del picture y luego coloca la parte central de la imagen por eso en algunos casos solo se ve parte de las imagenes nose si se entiende.
-
HOLA!!!
Redimensiona la imagen hasta que uno de los segmentos (Altura o Ancho) entran en el cuadro, el otro lo deja...
Por ejemplo tenemos un cuadro de 10x10 y una foto de 20x40 la foto quedara centrada en el cuadro de 10x10 con un tamaño de 10x20
GRACIAS POR LEER!!!
-
hola 79 he estado jugando con la propiedad paintpicture y a sido un dolor de cabeza haber si me ayudan un poco, sera por el sol 8).
-
HOLA!!!
Primero tenes que obtener el tamaño de la imagenes en Pixels H*W
Luego H*W en pixels del contenedor.
Te fijas cual de los dos (H y W) se asemeja mas.
Ahi haces una regla de 3 simple para saber la proporcion
Multiplicas ambos (H y W) por la proporcion y te da el tamaño de la imagen final.
Eso te puedo decir (como obtener el tamaño final) pero no sabria decirte como redimensionarla.
GRACIAS POR LEER!!!
-
Hola, lo mas cercano que conozco es como hace windows, se llama "strech", aca un codigo que creo me lo paso Leandro.
Option Explicit
Private Declare Function StretchBlt Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function SetStretchBltMode Lib "gdi32" (ByVal hDC As Long, ByVal nStretchMode As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
' -----------------------------------------------------------------------------------
' \\ -- Adapta una Imagen manteniendo la relacion de aspecto como lo hace windows
' -----------------------------------------------------------------------------------
Public Function AdaptarImagen(ByVal pFormulario As Form, ByVal pImagen As StdPicture, ByVal Pic As Object)
Dim PLeft As Long, PTop As Long
Dim ReqWidth As Long, ReqHeight As Long
Dim HScale As Double, VScale As Double
Dim MyScale As Double
Dim ImgWidth As Long
Dim ImgHeight As Long
Dim SourceHDC As Long
Pic.ScaleMode = vbPixels
Pic.AutoRedraw = True
Pic.Cls
ImgWidth = pFormulario.ScaleX(pImagen.Width, vbHimetric, vbPixels)
ImgHeight = pFormulario.ScaleY(pImagen.Height, vbHimetric, vbPixels)
HScale = Pic.ScaleWidth / ImgWidth
VScale = Pic.ScaleHeight / ImgHeight
MyScale = IIf(VScale >= HScale, HScale, VScale)
ReqWidth = ImgWidth * MyScale
ReqHeight = ImgHeight * MyScale
PLeft = (Pic.ScaleWidth - ReqWidth) / 2
PTop = (Pic.ScaleHeight - ReqHeight) / 2
SourceHDC = CreateCompatibleDC(0)
DeleteObject SelectObject(SourceHDC, pImagen.Handle)
SetStretchBltMode Pic.hDC, vbPaletteModeNone
If pImagen.Type = 3 Then Pic.PaintPicture pImagen, PLeft, PTop, ReqWidth, ReqHeight Else _
StretchBlt Pic.hDC, PLeft, PTop, ReqWidth, ReqHeight, SourceHDC, 0, 0, ImgWidth, ImgHeight, vbSrcCopy
DeleteDC SourceHDC
End Function
Private Sub Command1_Click()
Call AdaptarImagen(Me, Picture1.Picture, Picture1)
End Sub
lo que hace es mantener la relacionde aspecto de ancho y alto y no la deforma y en el espacio que queda queda libre.
(http://www.danantonielli.com/wp-content/uploads/2009/07/hue1.jpg)
fijate si te sirve o le sirve a alguien.
saludos.
-
Descargate los ejemplos de aca http://leandroascierto.com/foro/index.php?topic=1359.0 y busca el que dice scale, que justamente tiene eso que buscas.
-
el ucImage tiene las tecnicas de Cobein, para escalar una foto :) Scale, ScaleUp y ScaleDown