In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Comprimir imagenes

Foro público de Xailer en español
Responder
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Comprimir imagenes

Mensaje por perolero »

Hola a todos:
Mucho tiempo sin dejarme ver por aquí­. Tengo un problema, estoy haciendo una aplicación que sube imagenes a un servidor web, que aloja una web en el que las imagenes deben de tener un tamaño determinado para ser mostradas en concreto 200*150 px.
Pregunta, existe en Xailer algun modo de poder configurar una imagen cualquiera a unas dimensiones determinadas, como paso previo a subirlas al servidor web mediante FTPFile.
Un saludo.
Emilio Gil
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Comprimir imagenes

Mensaje por jfgimenez »

Emilio,
> Mucho tiempo sin dejarme ver por aquí­. Tengo un
> problema, estoy haciendo una aplicación que sube imagenes a
> un servidor web, que aloja una web en el que las imagenes
> deben de tener un tamaño determinado para ser mostradas en
> concreto 200*150 px.
>
> Pregunta, existe en Xailer algun modo de poder configurar
> una imagen cualquiera a unas dimensiones determinadas, como
> paso previo a subirlas al servidor web mediante FTPFile.
échale un vistazo al método MakeThumbnail() de TPicture. Al
redimensionar la imagen se mantiene la relación de aspecto, es decir, no
se pierden las proporciones. Y los parámetros de ancho y alto son para
indicar el tamaño máximo que quieras obtener, pero la imagen resultante
puede ser menor en anchura o altura para mantener las proporciones.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Comprimir imagenes

Mensaje por perolero »

Muchas gracias José, me sacas de un buen apuro.
Un saludo,
Emilio Gil
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Comprimir imagenes

Mensaje por perolero »

Hola José:
Estoy probando y no me funciona, tengo la FreeImage.dll (versión 3.14.1.0) en el mismo directorio que el ejecutable y uso Xailer-Pro versión 2.5.1.
El codigo que utilizo es el siguiente
WITH OBJECT ::oPicture := TPicture():New( Self )
if File("volante.jpg") //una imagen que también tengo en directorio del ejecutable
:cName := "volante.jpg"
:MakeThumbNail(200,200)
endif
END WITH
Me falta poner alguna cosa más para que funcione correctamente.
Utilizo como freeimage.h la que viene descrita en la ayuda de xailer en la opción TPicture:MakeThumbNail
#define BMP_DEFAULT 0
#define BMP_SAVE_RLE 1
#define CUT_DEFAULT 0
#define DDS_DEFAULT 0
#define EXR_DEFAULT 0 // save data as half with piz-based wavelet compression
#define EXR_FLOAT 0x0001 // save data as float instead of as half (not recommended)
#define EXR_NONE 0x0002 // save with no compression
#define EXR_ZIP 0x0004 // save with zlib compression, in blocks of 16 scan lines
#define EXR_PIZ 0x0008 // save with piz-based wavelet compression
#define EXR_PXR24 0x0010 // save with lossy 24-bit float compression
#define EXR_B44 0x0020 // save with lossy 44% float compression - goes to 22% when combined with EXR_LC
#define EXR_LC 0x0040 // save images with one luminance and two chroma channels,
#define FAXG3_DEFAULT 0
#define GIF_DEFAULT 0
#define GIF_LOAD256 1 // Load the image as a 256 color image with ununsed palette entries
#define GIF_PLAYBACK 2 // 'Play' the GIF to generate each frame (as 32bpp)
#define HDR_DEFAULT 0
#define ICO_DEFAULT 0
#define ICO_MAKEALPHA 1 // convert to 32bpp and create an alpha channel from the AND-mask when loading
#define IFF_DEFAULT 0
#define J2K_DEFAULT 0 // save with a 16:1 rate
#define JP2_DEFAULT 0 // save with a 16:1 rate
#define JPEG_DEFAULT 0 // loading (see JPEG_FAST); saving (see JPEG_QUALITYGOOD)
#define JPEG_FAST 0x0001 // load the file as fast as possible, sacrificing some quality
#define JPEG_ACCURATE 0x0002 // load the file with the best quality, sacrificing some speed
#define JPEG_CMYK 0x0004 // load separated CMYK "as is" (use | to combine with other load flags)
#define JPEG_QUALITYSUPERB 0x80 // save with superb quality (100:1)
#define JPEG_QUALITYGOOD 0x0100 // save with good quality (75:1)
#define JPEG_QUALITYNORMAL 0x0200 // save with normal quality (50:1)
#define JPEG_QUALITYAVERAGE 0x0400 // save with average quality (25:1)
#define JPEG_QUALITYBAD 0x0800 // save with bad quality (10:1)
#define JPEG_PROGRESSIVE 0x2000 // save as a progressive-JPEG (use | to combine with other save flags)
#define KOALA_DEFAULT 0
#define LBM_DEFAULT 0
#define MNG_DEFAULT 0
#define PCD_DEFAULT 0
#define PCD_BASE 1 // load the bitmap sized 768 x 512
#define PCD_BASEDIV4 2 // load the bitmap sized 384 x 256
#define PCD_BASEDIV16 3 // load the bitmap sized 192 x 128
#define PCX_DEFAULT 0
#define PNG_DEFAULT 0
#define PNG_IGNOREGAMMA 1 // avoid gamma correction
#define PNM_DEFAULT 0
#define PNM_SAVE_RAW 0 // If set the writer saves in RAW format (i.e. P4, P5 or P6)
#define PNM_SAVE_ASCII 1 // If set the writer saves in ASCII format (i.e. P1, P2 or P3)
#define PSD_DEFAULT 0
#define RAS_DEFAULT 0
#define SGI_DEFAULT 0
#define TARGA_DEFAULT 0
#define TARGA_LOAD_RGB888 1 // If set the loader converts RGB555 and ARGB8888 -> RGB888.
#define TIFF_DEFAULT 0
#define TIFF_CMYK 0x0001 // reads/stores tags for separated CMYK (use | to combine with compression flags)
#define TIFF_PACKBITS 0x0100 // save using PACKBITS compression
#define TIFF_DEFLATE 0x0200 // save using DEFLATE compression (a.k.a. ZLIB compression)
#define TIFF_ADOBE_DEFLATE 0x0400 // save using ADOBE DEFLATE compression
#define TIFF_NONE 0x0800 // save without any compression
#define TIFF_CCITTFAX3 0x1000 // save using CCITT Group 3 fax encoding
#define TIFF_CCITTFAX4 0x2000 // save using CCITT Group 4 fax encoding
#define TIFF_LZW 0x4000 // save using LZW compression
#define TIFF_JPEG 0x8000 // save using JPEG compression
#define WBMP_DEFAULT 0
#define XBM_DEFAULT 0
#define XPM_DEFAULT 0
Muchas gracias.
Saludos,
Emilio Gil.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Comprimir imagenes

Mensaje por jfgimenez »

Emilio,
> Estoy probando y no me funciona, tengo la FreeImage.dll
> (versión 3.14.1.0) en el mismo directorio que el ejecutable
> y uso Xailer-Pro versión 2.5.1.
>
> El codigo que utilizo es el siguiente
>
> WITH OBJECT ::oPicture := TPicture():New( Self )
>
> if File("volante.jpg") //una imagen que también tengo
> en directorio del ejecutable
>
> :cName := "volante.jpg"
> :MakeThumbNail(200,200)
>
> endif
>
> END WITH
>
>
> Me falta poner alguna cosa más para que funcione
> correctamente.
Ponlo así­ (ojo, lo he escrito al vuelo y sin probarlo):
IF File( "volante.jpg" )
WITH OBJECT TPicture():New()
:Load( "volante.jpg" )
cData := :MakeThumbnail( 200, 200 )
:End()
END
ENDIF
y en cData tienes la cadena (buffer) que tienes que subir al FTP. Si lo
necesitas como archivo, puedes guardarlo con FCreate() / FWrite() /
FClose(). No uses nunca MemoWrit() para esto.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Comprimir imagenes

Mensaje por perolero »

Hola José:
He probado con
WITH OBJECT ::oPicture := TPicture():New( Self )
if File("volante.jpg")
:load("volante.jpg")
c := :MakeThumbNail(200,200)
:End()

file_id := FCreate("volante1.jpg")
FWrite(file_id,c)
FClose(file_id)
endif
END WITH
Usando la libreria FreeImage.dll (varias versiones) y sin usarla y sigue presentando el mismo problema IMAGEN INVERTIDA.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Comprimir imagenes

Mensaje por jfgimenez »

Emilio,
> He probado con
>
> WITH OBJECT ::oPicture := TPicture():New( Self )
>
> if File("volante.jpg")
>
> :load("volante.jpg")
> c := :MakeThumbNail(200,200)
> :End()
> file_id := FCreate("volante1.jpg")
> FWrite(file_id,c)
> FClose(file_id)
> endif
>
> END WITH
>
> Usando la libreria FreeImage.dll (varias versiones) y sin
> usarla y sigue presentando el mismo problema IMAGEN
> INVERTIDA.
Prueba con esta. Esta es la versión que yo usaba en su momento, que es
más pequeña, y si no se usa nada especial de las últimas versiones, vale
perfectmente:
https://www.dropbox.com/s/ychne5sxsk8n5o0/FreeImage.zip
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
perolero
Mensajes: 135
Registrado: Mar Dic 21, 2010 9:54 am

Comprimir imagenes

Mensaje por perolero »

Hola Jose:
MUCHISIMAS GRACIAS, ha sido cambiar la Freeimage.dll a la que tu me has enviado y como dirí­a René "Listo el pollo".
Un saludo,
Emilio Gil.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Comprimir imagenes

Mensaje por jfgimenez »

Emilio,
> MUCHISIMAS GRACIAS, ha sido cambiar la Freeimage.dll a la
> que tu me has enviado y como dirí­a René "Listo el pollo".
Me alegro de que te haya funcionado.
Pero lo de "listo el pollo", si no recuerdo mal era de Vikthor
(http://listoelpollo.blogspot.com.es) ;-)
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder