Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: YAcosta en Septiembre 19, 2014, 04:05:48 pm
-
No conseguí resolver esto.
En un reporte muestro una fotografía proveniente de un control Picture de esta forma:
Set .Controls.Item("ImFoto").Picture = Pic.Picture
(si fuera control image seria similar)
De tal manera que la foto la puedo cambiar dinamicamente.
Resulta que ahora las foto las tengo en el control ucImage y de alli no veo como pasar la foto del ucImage al Datareport, siendo que si puedo pasar de un ucImage a otro ucImage con esto (proporcionado aqui en el foro):
Dim bvData() As Byte
bvData = frmGraficos.ucOrigen.GetStream
ucDestino.LoadImageFromStream bvData
¿Como podría ahora mostrar en un Picture (o Image) una imagen proveniente de un ucImage? ya que imagino que seria un poco mas facil de ucImage a Picture que de un ucImage a Datareport
Gracias
-
Lo que voy a sugerir no sé si técnicamente se puede, ni si será aplicable por la velocidad con la que lo necesites, con lo cual a lo mejor digo una tremenda huevada.
¿No se puede guardar la imagen del ucImage en un archivo y luego cargarla en el control Picture?
Jerónimo
-
Seguramente se pueda crear un StdPicture y por medio de las API OLE se pueda rellenar para usarla como un .Picture ... como hacerlo? No tengo idea x'D
-
Lo que voy a sugerir no sé si técnicamente se puede, ni si será aplicable por la velocidad con la que lo necesites, con lo cual a lo mejor digo una tremenda huevada.
¿No se puede guardar la imagen del ucImage en un archivo y luego cargarla en el control Picture?
Jerónimo
Olvide comentar que las imágenes son PNG. Lo cual dificulta mas el tema.
-
Seguramente se pueda crear un StdPicture y por medio de las API OLE se pueda rellenar para usarla como un .Picture ... como hacerlo? No tengo idea x'D
jeje, ok, ta medio feo entonces. Lo otro seria conseguir ese codigo que puede capturar una zona de la pantalla, de esa forma capturo la imagen del png y luego lo deposito en el picture. A ver vere una de ellas.
Graicas
-
Estimado YAcosta
Podrías publicar un ejemplo con el control que indicas que tenga cargada las imágenes PNG, para revisar y ver de qué forma se pueden pasar a un PictureBox.
Saludos desde algún lugar de Lima-Perú
-
Ah excelente doc, en 5 minutos subo el proyecto de ejemplo
-
Listo doc, aqui esta
https://dl.dropboxusercontent.com/u/4052038/Otros/Proyecto%20ucImage.rar
-
Ta yuca no?
-
Estimado YAcosta
Esta es una primera versión, particularmente me gustaria manejarlo totalmente en memoria pero he tenido algunos problemas
Desde este ling puedes bajar el update de tú ejemplo: http://1drv.ms/1ykmL5r (http://1drv.ms/1ykmL5r)
Saludos, desde algún lugar de Lima-Perú
-
FENOMENAL!!! amigo
Con eso para mi quedo resuelto, mas tarde lo leo a profundidad pero basicamente lo que haces es "descargar" la imagen temporalmente y volverla a subir convirtiendola en bmp (me parece) alojandola en el picture, sufi que con eso queda resuelto para mi.
El unico detalle que modifique es que cambie lngBackColor = Me.BackColor por esto
lngBackColor = vbWhite dado que mis fondos de formulario son azules y como pondre esta imagen en un datareport para impresion queda mejor con fondo blanco.
Aumentamos 2 chelas mas.
-
Estimado YAcosta
En realidad lo que estoy haciendo es lo que había propuesto Jeronimo; estoy valiendo de la función SaveToFile que expone el control ucImageOriginal, para guardar la imagen en un archivo temporal con extensión PNG, ya que tú indicas que el archivo tiene formato PNG.
Visual Basic no soportan de forma nativa imágenes con formato PNG, es por ello, que hago uso de la función LoadPictureGDIPlus para cargar el archivo temporal PNG en los controles PictureBox o Image, y le pasamos el color de fondo mediante la variable lngBackColor
Finalmente, cuando ya tenemos el archivo PNG cargado en el control PictureBox o Image, eliminamos el archivo PNG temporal haciendo uso de Kill.
Ya que la función LoadPictureGDIPlus hace uso de GDI+ antes de llamar a la función debemos de invocar a la función InitGDIPlus y cuando terminemos de usarla debemos de invocar a la función FreeGDIPlus.
Saludos, desde algún lugar de Lima-Perú
-
Estimado YAcosta
Me parece que sería interesante y nos podría servir de ejemplo si publicas un ejemplo de dicho reporte con DataReport y las imágenes PNG contenidas en el control ucImageOriginal.
Saludos, desde algún lugar de Lima-Perú
-
Ya, bacan doc. Ahorita hago el ejemplo.
-
Ya esta, aqui el ejemplo de lo que hice
Proyecto ucImage v3 (https://dl.dropboxusercontent.com/u/4052038/Otros/Foros/Proyecto%20ucImage%20v3.rar)
Y aqui a manera de idea te muestro la parte de mi programa que ahora puede mostrar los PNGs en el datareport.
[youtube]_7tTFg-sN_M[/youtube] (ponerlo en HD) :-)
-
Estimado YAcosta
Por lo que se ve en el video esta quedando muy bien la aplicación y el código de ejemplo del DataReport con image le ha de ser de mucha utilidad a muchos amigos foreros.
Saludos, desde algún lugar de Lima-Perú
-
amigo Yvan muchas felicidades por tu soft muy impresionante saludos
Albertomi gracias tambien por tus aportes saludos desde México
-
AMigo YAcosta , gracias por tu aporte
Yo lo podria implementar en mi soft de Veterinarias y clinicas de pequeños para mis ecografias y radiografias
Seria bueno poder ver el codigo termiinado , sobre todo la parte que pasas el mouse por encima del articulo y muestra la imagen+
gracias
-
Gracias muchachos.
Gasafonso, el codigo esta terminado del soft en general, ese tema es solo una parte de la funcionalidad que la queria mejorar y gracias al apoyo la pude terminar, por ende, es super complicado publicar ese codigo (del soft completo que es el que me para la olla) lo que si puedo hacer sin ningun problema es indicarte como hice tal o cual cosa y alli comprobaras que no es nada dificil
Por ejemplo, pasar el mouse sobre la imagen es simplemente hacer un ucPic.visible = true y jugar con los X y Y en el evento mousemove, si quieres te publico esa parte del codigo mas tarde porque ahorita te estoy escribiendo desde el inframundo.
-
Ok si si ,obvio que no pretendo que publiques tu codigo fuente del soft , solo queria sacar el ejemplo del mouse con el ucImage
gracias amigooooo
-
Muy linda la interfaz de tu software