Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2004
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
Reducir tamaño de imagen de un dbimage

Buenas

Estoy trabajando en un programa que inserta figuras de archivos .jpg a una tabla Paradox. La parte de la inserción ya la terminé y funciona bien pero ahora quisiera que antes de insertar la imagen en el DBImage, que la reduzca de tamaño. Se me ocurre utilizar un objeto TJpegImage y aplicar las propiedades CompressQuality y Compress (según lo que vi en otro hilo), el problema es que quisiera manipular la imagen en el ClipBoard y no mediante archivos y no tengo muy claro como se manejan esas propiedades.
Si alguien puede ayudarme o tiene otra sugerencia se lo agredeceré.
Saludos.
Muchas gracias.

Walter
Responder Con Cita
  #2  
Antiguo 11-11-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Walterdf
...que la reduzca de tamaño. Se me ocurre utilizar un objeto TJpegImage y aplicar las propiedades CompressQuality y Compress (según lo que vi en otro hilo), el problema es que quisiera manipular la imagen en el ClipBoard y no mediante archivos
No tengo claro si al reducir "al tamaño de la imagen" te refires al ancho y al alto o al tamaño del fichero (supongo que es éste segundo, por lo que comentas de compresión -CompressQuality -), pero me da la impresión de que para ninguno de los dos casos "necesitas" utilizar ni ficheros ni el ClipBoard.
No acabo de entender a qué te refieres con "quisiera manipular la imagen en el ClipBoard"; El portapapeles simplemente es un lugar que almacena información, no se usa para manipular cosas; Lo que sí puedes hacer es realizar el trabajo que quieres (reducir el tamaño) y luego copiar el resultado al Clipboard; Para allo puedes utilizar los métodos de la clase TJpegImage, LoadFromClipboardFormat y SaveToClipboardFormat.

Si no es ésto lo que quieres, tal vez aclararía más que quieres decir con lo de "usar el clipboard" y algo de código.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 11-11-2004
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
Hola Neftali,
Ante todo, gracias por haberme respondido.
Perdón por la falta de claridad en mi consulta, tenés razón, lo escribí apurado y así salió.
Lo que necesito hacer es reducir el peso de la imagen bajandole un poco la calidad y pensé en hacerlo con las propiedades que nombré antes, CompressQuality.
Cuando hablo del ClipBoard me refiero a que no necesito guardar la figura modificada en un archivo, el programa debería hacer lo siguiente, abrir el archivo .jpg, reducir el peso de la imagen y pegarla en el dbimage. Calculo que para esto utilizaría las propiedades SaveToClipBoardFormat y LoadFromClipBoardFormat y no entiendo del todo los parámetros que deben llevar.
Espero haber aclarado un poco el objeto de mi consulta y si puedes darme una mano con algún código de ejemplo te lo agradeceré.
Un saludo
Walter
Responder Con Cita
  #4  
Antiguo 11-11-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Walterdf
...el programa debería hacer lo siguiente, abrir el archivo .jpg, reducir el peso de la imagen y pegarla en el dbimage...
Mejor explicado ahora, dónde va a parar...
Un comentario sólo, en lugar de "pegarla" en el DBImage, debes pegarla en el campo asociado del Dataset, que es el que tiene el dato, el DBImage símplemente "muestra" lo que hay en el DataSet.


Cita:
Empezado por Walterdf
...Calculo que para esto utilizaría las propiedades SaveToClipBoardFormat y LoadFromClipBoardFormat y no entiendo del todo los parámetros que deben llevar.
Como ya te comenté, para hacer lo que pides no se necesita utilizar el Clipboard para nada, puedes hacerlo con objetos.

Código Delphi [-]
var
  jpg:TJpegImage;
begin
  // Crear el objeto JPG
  jpg := TJpegImage.Create;
  try
    // Asignar de un TImage o Leer de disco
    jpg.Assign(Image1.Picture);
    // CAmbiar compresión y comprimir
    jpg.CompressionQuality := jpg.CompressionQuality DIV 2;
    jpg.Compress;
    // Asignar a otro Image
    Image2.Picture.Assign(jpg);
    // Para comprobar sólo; grabar las nuevas imágenes desde jpg y TImage2
   // y comprobar el tamaño en disco
    Image2.Picture.SaveToFile('c:\temp\out-Timage.jpg');
    jpg.SaveToFile('c:\temp\out-jpg.jpg');
  finally
    jpg.Free;
  end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 11-11-2004
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
Muchas gracias Neftali, funcionó de maravillas!!!
De todos modos y si no es mucho molestia, me gustaría saber exactamente como funcionan las propiedades SaveToClipBoardFormat y LoadFromClipBoardFormat, simplemente me quedé con la curiosidad.
Un abrazo y gracias.
Walter
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:31:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi