Tengo en u directorio .jpg de 3000 kb necesito una rutina en visual foxpro que baje la resolución a 1000 kb

Mi problema es que para bajar la resolución tengo que usar otros programas lo que no me permite automatizarlo en visual foxpro. Muchas Gracias.

1 Respuesta

Respuesta

Chequea esta rutina, espero te sirva, cambia lo que quieras

ALTO=768
ANCHO=1024

ChangeRes(ANCHO,ALTO)

FUNCTION ChangeRes
LPARAMETERS tnWidth, tnHeight
LOCAL lnWidth, lnHeight, lnModeNum, lcDevMode
lnModeNum = 0
lcDevMode = REPLICATE(CHR(0), 156)
lnWidth = IIF(EMPTY(tnWidth), 800, tnWidth)
lnHeight = IIF(EMPTY(tnHeight), 600, tnHeight)

DECLARE INTEGER EnumDisplaySettings IN Win32API STRING lpszDeviceName, INTEGER iModeNum, STRING @lpDevMode
DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING @lpDevMode , INTEGER dwFlags
DO WHILE EnumDisplaySettings(NULL, lnModeNum, @lcDevMode) <> 0
lnModeNum = lnModeNum +1
ENDDO
lcDevMode = STUFF(lcDevMode, 41, 4, LongToStr(1572864))
lcDevMode = STUFF(lcDevMode, 109, 4, LongToStr(tnWidth)) && Ancho
lcDevMode = STUFF(lcDevMode, 113, 4, LongToStr(tnHeight)) && Alto
ChangeDisplaySettings(@lcDevMode, 1)
ENDFUNC

FUNCTION LongToStr
LPARAMETERS lnLongVal
LOCAL lnCnt, lcRetStr
lcRetStr = '
FOR lnCnt = 24 TO 0 STEP -8
lcRetStr = CHR(INT(lnLongVal/(2^lnCnt))) + lcRetStr
lnLongVal = MOD(lnLongVal, (2^lnCnt))
NEXT
RETURN lcRetStr
ENDFUNC

ChangeRes(AnchoInicio, AltoInico)

Quit

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas