Imagen PNG

202 views
Skip to first unread message

Manrique Flores

unread,
Mar 10, 2024, 7:02:08 PM3/10/24
to Comunidad de Visual Foxpro en Español
Hola Compañeros

   Tengo unas imagenes tipo PNG con fondo Transparente que quiero incluir en un informe (Report) las fotos de los empleados que quiero incluir no las acepta, es una gafette. una imagen fija  la empleado depende que empleado seleccione, pero me deja un cuadro color blanco que NO es transparente.


como lo puedo hacer

Edwin Duran

unread,
Mar 10, 2024, 8:21:55 PM3/10/24
to Comunidad de Visual Foxpro en Español
Saludos, aunque se PNG muchas veces no es transparente.

Manrique Flores

unread,
Mar 11, 2024, 12:26:52 AM3/11/24
to Comunidad de Visual Foxpro en Español
los he probado los archivos png y si son transparentes, 110% comprobados

Antonio Lima

unread,
Mar 11, 2024, 2:29:20 AM3/11/24
to publice...@googlegroups.com
Tengo un código muy pequeño que genera una miniatura PNG transparente a partir de una imagen, tendrás que cambiarlo un poco para que no haga miniatura. Déjame buscarlo y te lo envío.

Aunque yo también creo que la imagen que tienes no es transparente (o del todo) no recuerdo si en  el informe , el objetivo que muestra la foto tiene opción de transparente.

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/86ae3fde-5e89-4970-9b5a-c7a6f39b33a4n%40googlegroups.com.

Manrique Flores

unread,
Mar 11, 2024, 12:25:06 PM3/11/24
to Comunidad de Visual Foxpro en Español
Gracias espero el codigo

Antonio Lima

unread,
Mar 11, 2024, 4:41:21 PM3/11/24
to publice...@googlegroups.com
Hola,  espero te sirva.

PARAMETERS tcBitmapSource, tcBitmapDest, tnMaxWidth, tnMaxHeight

LOCAL llResult
llResult= .F.

LOCAL lcError
lcError = ""

LOCAL loImage, lnAncho, lnAlto, lnWidth, lnHeight

TRY

loImage = CreateObject("image")
loImage.Picture = tcBitmapSource
loImage.Stretch = 0

lnAncho = loImage.Width
lnAlto  = loImage.Height

DO CASE
CASE lnAncho = lnAlto
lnHeight = tnMaxHeight
lnWidth  = tnMaxWidth
CASE lnAlto > lnAncho
lnPorc = (lnAncho * 100)/ lnAlto
lnHeight = tnMaxHeight
lnWidth = (tnMaxWidth * lnPorc)/100
CASE lnAlto < lnAncho
lnPorc = (lnAlto *100)/ lnAncho
lnHeight = (tnMaxHeight * lnPorc)/100
lnWidth = tnMaxWidth
ENDCASE

IF !PEMSTATUS(_SCREEN, "System", 5)
DO (LOCFILE("system.app"))
ENDIF
WITH _SCREEN.System.Drawing

* Cargar la imagen original
LOCAL loSrcImage as xfcBitmap
*-loSrcImage = .Bitmap.New(tcBitmapSource)
loSrcImage = .Bitmap.FromFile(tcBitmapSource)
* Crea una nueva imagen con el tamaño deseado
LOCAL loResized as xfcBitmap
loResized = .Bitmap.New(lnWidth, lnHeight,.Imaging.PixelFormat.Format32bppARGB)

* Fija la resolución de la imagen para que sea la misma que la original
loResized.SetResolution(loSrcImage.HorizontalResolution, loSrcImage.VerticalResolution)

* Crea un objeto Graphics para poder obtener los derechos de dibujar sobre el
LOCAL loGfx as xfcGraphics
loGfx = .Graphics.FromImage(loResized)

* Establece algunas propiedades para asegurarse de tener la mejor calidad de la imagen
loGfx.SmoothingMode = .Drawing2D.SmoothingMode.HighQuality
loGfx.InterpolationMode = .Drawing2D.InterpolationMode.HighQualityBicubic

* Dibuja la imagen original en la nueva imagen con las dimensiones deseadas
loGfx.DrawImage(loSrcImage, 0, 0, lnWidth, lnHeight)

* Hace toda la imagen transparente
*-loGfx.Clear(.Color.FromARGB(0,0,0,0))

* Crea Carpeta de Destino en caso de que no Exista
IF !DIRECTORY(JUSTPATH(tcBitmapDest))
MD (JUSTPATH(tcBitmapDest) )
ENDIF

* Guarda la imagen redimensionada como Png
DO CASE
CASE UPPER(JUSTEXT(tcBitmapDest)) = "BMP"
loResized.Save(tcBitmapDest, .Imaging.ImageFormat.bmp)
CASE UPPER(JUSTEXT(tcBitmapDest)) = "TIF"
loResized.Save(tcBitmapDest, .Imaging.ImageFormat.tiff)
CASE UPPER(JUSTEXT(tcBitmapDest)) = "JPG"
loResized.Save(tcBitmapDest, .Imaging.ImageFormat.jpeg)
CASE UPPER(JUSTEXT(tcBitmapDest)) = "GIF"
loResized.Save(tcBitmapDest, .Imaging.ImageFormat.gif)
OTHERWISE
loResized.Save(tcBitmapDest, .Imaging.ImageFormat.png)
ENDCASE

ENDWITH

llResult = FILE(tcBitmapDest)
IF !llResult
lcError = "No se ha podido crear la Imagen"
ENDIF

CATCH TO loErr
lcError = "No se ha podido crear la Imagen: "+loErr.Message
llResult = .F.
ENDTRY

IF !llResult
=MESSAGEBOX("No se ha podido crear la Imagen en miniatura."+CHR(13)+lcError)
ENDIF

RETURN llResult

Zarlu

unread,
Mar 12, 2024, 11:00:06 AM3/12/24
to Comunidad de Visual Foxpro en Español
Buenos días Manrique!

Prueba:
SET REPORTBEHAVIOR 90
Report Form....

Suerte
zarlu
Chetumal, Quintana Roo, México

Sin título.png

Manrique Flores

unread,
Mar 13, 2024, 1:59:56 AM3/13/24
to Comunidad de Visual Foxpro en Español
Woow ya aplique todas excelente, Gracias compañeros por su ayuda
Reply all
Reply to author
Forward
Message has been deleted
0 new messages