Clarion - Validar el Tamaño de una Imagen

   
Vista:

Validar el Tamaño de una Imagen

Publicado por Peter (13 intervenciones) el 25/09/2009 22:54:05
Hola a todos

Estoy haciendo una aplicacion donde debo de cargar una imagen y mostrarla en un form y guardarla en una base de datos, hasta ai va todo bien utilizo un DOS LookupFIile para buscar la imagen. Lo que quiero hacer es poner una validacion en el boton OK del form para que no me deje insertar imagenes de mas de cierta cantidad de Kbs.

Espero puedan ayudarme, gracias por su tiempo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Clarion
- Código fuente de Clarion
- Cursos de Clarion
información
Códigos de Clarion
- Llamar al form para insertar desde el menu

RE:Validar el Tamaño de una Imagen

Publicado por Marcelo Madelon (572 intervenciones) el 27/09/2009 17:46:17
Peter. Va un ejemplo que lista todos los archivos y subcarpetas de una carpeta.
Verás que hago un message para que puedas ver el proceso.

Abri las variables locales. (Editalas)

Data....... Pica el cuadradito con los puntos suspensivos
Pega lo que sigue

[SCREENCONTROLS]
! ENTRY(@s1),USE(AllFiles)
[REPORTCONTROLS]
! STRING(@s1),USE(AllFiles)
AllFiles QUEUE(File:queue),PRE(FIL) !Inherit exact declaration of File:queue
!!> IDENT(4294967192),PICTURE(@s1)
END
!!> IDENT(4294967176)
[SCREENCONTROLS]
! ENTRY(@n-14),USE(LP)
[REPORTCONTROLS]
! STRING(@n-14),USE(LP)
LP LONG
!!> IDENT(4294967190),PICTURE(@n-14)
[SCREENCONTROLS]
! ENTRY(@n-14),USE(Recs)
[REPORTCONTROLS]
! STRING(@n-14),USE(Recs)
Recs LONG
!!> IDENT(4294967189),PICTURE(@n-14)
[SCREENCONTROLS]
! TEXT,USE(MyLongFile)
[REPORTCONTROLS]
! TEXT,USE(MyLongFile)
MyLongFile STRING(260)
!!> IDENT(4294967188),PICTURE(@s255)
[SCREENCONTROLS]
! ENTRY(@s99),USE(MyFile)
[REPORTCONTROLS]
! STRING(@s99),USE(MyFile)
MyFile CSTRING(100)
!!> IDENT(4294967187),PICTURE(@s99)
[SCREENCONTROLS]
! PROMPT('No Procesado:'),USE(?NoProcesado:Prompt)
! ENTRY(@s90),USE(NoProcesado)
[REPORTCONTROLS]
! STRING(@s90),USE(NoProcesado)
NoProcesado CSTRING(91)
!!> IDENT(4294967180),PROMPT('No Procesado:'),HEADER('No Procesado'),PICTURE(@s90)
[SCREENCONTROLS]
! PROMPT('My Size:'),USE(?MySize:Prompt)
! ENTRY(@n-14),USE(MySize),RIGHT(1)
[REPORTCONTROLS]
! STRING(@n-14),USE(MySize),RIGHT(1)
MySize LONG
!!> IDENT(4294967179),PROMPT('My Size:'),HEADER('My Size'),PICTURE(@n-14),JUSTIFY(RIGHT,1)
[SCREENCONTROLS]
! PROMPT('Extension:'),USE(?Extension:Prompt)
! ENTRY(@s3),USE(Extension),UPR
[REPORTCONTROLS]
! STRING(@s3),USE(Extension)
Extension STRING(3)
!!> IDENT(4294967169),PROMPT('Extension:'),HEADER('Extension'),PICTURE(@s3),CASE(UPPER)

******************++
Graba

Yo puse un boton en el ToolBar donde agregué este codigo
Fijate que la carpeta Nano la deberás reemplazar por la que queres explorar

DIRECTORY(AllFiles,'C:\Nano\*.*',ff_:DIRECTORY) !Get all files and directories
Recs = RECORDS(AllFiles)
I# = 0
LOOP LP = 1 TO Recs BY 1
GET(AllFiles,LP)

IF BAND(FIL:Attrib,ff_:DIRECTORY) AND FIL:ShortName <> '..' AND FIL:ShortName <> '.'
NoProcesado = LONGPATH('C:\AA\'&FIL:ShortName)
MyFile = FIL:ShortName
MySize = FIL:size
ELSE
DELETE(AllFiles)
Display !Get rid of all other entries
END
IF FIL:ShortName <> '..' AND FIL:ShortName <> '.'
NoProcesado = LONGPATH('C:\Nano\'&FIL:ShortName)
MyFile = FIL:ShortName
MySize = FIL:size
Message ('MySize '&MySize&' NoProcesado '&NoProcesado)
END
END

Espero te sirva.
Si no te queda claro tengo un ejemplo chico, pasame tu mail y te lo envio.
Lo mismo para el resto del foro que lo esté necesitando.
Una vez mas: Hoy por ti mañana por mi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar el Tamaño de una Imagen

Publicado por Peter (13 intervenciones) el 27/09/2009 21:14:01
Gracias por comentar, pues te dejo mi correo para que me envies el ejemplo.

pit5150@gmail.com

Yo lo estaba haciendo asi:

If ARC:Path='' then
Message('Favor de Seleccionar una Imagen','Error!!!',Icon:Question,'&Aceptar')
Select(?LookupFile)
Post(Event:Accepted,?LookupFile)
cycle
END
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ARC:img{PROP:Size} = 0
ARC:img{PROP:Handle}= ?Image1{PROP:ImageBlob}

IF ARC:img{PROP:Size} > 409600 then !!!! 409600 = 50 KB
MESSAGE('Porfavor selecciona una foto menor a 50 KB','ATENCIÓN !',ICON:Exclamation)
cycle
END

Donde ARC:Path es un String(254) es donde guardo la ruta de la imagen y ARC:img es de tipo BLOB.

He estado cambiando el valor;IF ARC:img{PROP:Size} > 409600 y e tenido resultado si me a dejado insertar algunas imagenes y otras no, me a dejado insertar imagenes de 26 kb y dimensiones 300x381 y 51 kb y dimensiones 400x300 y no me a dejado insertar imagenes de 26 kb y dimensiones de 381x400, lo que pienso yo es que la propiedad size esta trabajando sobre las dimensiones de la imagen y no sobre el tamaño en bites.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar el Tamaño de una Imagen

Publicado por Marcelo Madelon (572 intervenciones) el 28/09/2009 13:12:33
Va Ejemplo. Cualquier cosa no dudes en comunicarte.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar el Tamaño de una Imagen

Publicado por FRANCISCO(CONSTRUDATA) (62 intervenciones) el 29/09/2009 06:05:19
Por que no checas el tamaño de la imagen antes, y si es mayor sl tamaño que indiqes, mandas un mensaje y te evitas tanto rollo.

Un saludo desde México

fem
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar el Tamaño de una Imagen

Publicado por Peter (13 intervenciones) el 29/09/2009 07:30:58
Disculpa mi ignorancia pero como puedo hacer eso que dices, yo tengo esto

ARC:img{PROP:Size} = 0
ARC:img{PROP:Handle}= ?Image1{PROP:ImageBlob}

IF ARC:img{PROP:Size} > 409600 then !!!! 409600 = 50 KB
MESSAGE('Porfavor selecciona una foto menor a 50 KB','ATENCIÓN !',ICON:Exclamation)
cycle
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar el Tamaño de una Imagen

Publicado por Peter (13 intervenciones) el 29/09/2009 07:33:12
Gracias por comentar pero disculpa mi ignorancia como puedo hacer eso que dices??

Yo tengo algo como esto pero aun no me a funcionado;

ARC:img{PROP:Size} = 0
ARC:img{PROP:Handle}= ?Image1{PROP:ImageBlob}

IF ARC:img{PROP:Size} > 51200 then !!!! 51200= 50 KB
MESSAGE('selecciona una foto menor a 50 KB','ATENCIÓN !',ICON:Exclamation)
cycle
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar el Tamaño de una Imagen

Publicado por Peter (13 intervenciones) el 29/09/2009 22:33:26
Bueno gracias por su ayuda a todos, por fin ya quedo listo el codigo despues de estarle moviendo un buen rato, aqui se los dejo por si alguien lo llegara a necesitar.

Saludos desde Mexico

If ARC:Path='' then
Message('Favor de Seleccionar una Imagen','Error!!!',Icon:Question,'&Aceptar')
Select(?LookupFile)
Post(Event:Accepted,?LookupFile)
cycle
END

loc:encontre=0
DIRECTORY(AllFiles,'C:\fotos\*.jpg',ff_:DIRECTORY)
Recs = RECORDS(AllFiles)
LOOP LP = Recs TO 1 BY -1
GET(AllFiles,LP)

IF BAND(FIL:Attrib,ff_:DIRECTORY) AND FIL:ShortName <> '..' AND FIL:ShortName <> '.'
MyFile = FIL:ShortName
MySize = FIL:Size
Cycle
ELSE
DELETE(AllFiles)
END
IF FIL:ShortName <> '..' AND FIL:ShortName <> '.'
Ruta = LONGPATH('C:\fotos\'&FIL:ShortName)
MyFile = FIL:ShortName
MySize = FIL:Size
!Message ('Size: '&MySize&' KB |Ruta: '&Ruta,'Especificaciones del Archivo')
END

IF ARC:Path=Ruta
loc:encontre=1
break
END

END !!! Loop

IF loc:encontre=1 then
IF MySize > 51200
MESSAGE('Selecciona una imagen menor a 50 KB','ATENCIÓN!!!',ICON:Exclamation)
Select(?)
Cycle
Else
MESSAGE('Se guardara la imagen:'&FIL:ShortName&'|Con un Tamaño: '&MySize,'IMAGEN')
END
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar el Tamaño de una Imagen

Publicado por FRANCISCO(Construdata) (62 intervenciones) el 03/10/2009 05:50:47
PETER TENGO UN TEMPLATE QUE LO HACE COMO FUNCION, SI ME ENVIAS UN MAIL (PORQUE VENGO POCO AL FORO) TE LO ENVIO CON GUSTO.

FRANCISCO ESTRADA M
fem@construdata.net
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar