Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Gráficos
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 10/05/2006
chux chux is offline
Miembro
 
Join Date: Sep 2005
Posts: 69
Poder: 21
chux Va por buen camino
Cambiar tamaño de una imagen antes de guardar en una bd

Veamos, estoy usando JVDBImage (de jedi) para guardar imagenes en una bd (campo tipo blob).
La imagen la guardo de esta manera
jvdbimage1.picture.loadfromfile('loquesea.xxx');

De esa forma puedo guardar bmp, jpgs, todo funciona bien.

...pero claro, antes de guardarla necesitaria reducir su tamaño

Lo que he visto por el foro es todo para bmps, sobre jpgs no he logrado encontrar nada.

Venga saludos
Reply With Quote
  #2  
Old 10/05/2006
dec's Avatar
dec dec is offline
Moderador
 
Join Date: Dec 2004
Location: Alcobendas, Madrid, España
Posts: 13,142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé hasta qué punto podría servir en este caso, pero, suele verse en los algoritmos que trata con imágenes JPG con Delphi, utilizan en realidad dos objetos: "TBitmap" y "TJpegImage".

Es decir, tú cargas la imagen en un objeto "TBipmap" y haces lo que tengas que hacer con la imagen, en este caso reducir su tamaño... luego de eso puedes cargar la imagen en un "TJpegImage" y guardarla ya a partir de ahí.

¿Se comprende? Ya digo que no sé si te servirá en tu caso en concreto, pero, piensa en lo que he dicho. Necesito cambiar el tamaño de una imagen y necesito esa imagen en formato JPG. Cargo la imagen en un "TBitMap" y trabajo sobre ella; luego cargo la imagen en un "TJpegImage" y punto pelota.

Nota: El tipo "TJpegImage" puede llamarse de otro modo. Mi memoria puede fallar fatalmente.
__________________
David Esperalta
www.decsoftutils.com
Reply With Quote
  #3  
Old 10/05/2006
seoane's Avatar
[seoane] seoane is offline
Miembro Premium
 
Join Date: Feb 2004
Location: A Coruña, España
Posts: 3,717
Poder: 26
seoane Va por buen camino
Con el permiso de dec voy a añadir un poco de codigo a la explicacion que te dio.

Código Delphi [-]
uses JPEG;

procedure Redimensionar(Imagen: TJPEGIMage; Ancho, Alto: Integer);
var
  Bitmap: TBitmap;
begin
  Bitmap:= TBitmap.Create;
  try
    Bitmap.Width:= Ancho;
    Bitmap.Height:= Alto;
    Bitmap.Canvas.StretchDraw(Bitmap.Canvas.ClipRect,Imagen);
    Imagen.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
end;

Para usar esta funcion solo tienes que pasarle como parametros la imagen y las nuevas dimensiones. Algo asi:

Código Delphi [-]
var
  Jpg: TJPEGImage;
begin
  Jpg:= TJPEGImage.Create;
  try
    Jpg.LoadFromFile('C:\Original.jpg');
    Redimensionar(Jpg,100,100);
    Jpg.SaveToFile('C:\Copia.jpg');
  finally
    Jpg.Free;
  end;
end;

O como en tu caso algo asi:
Código Delphi [-]
var
  Jpg: TJPEGImage;
begin
  Jpg:= TJPEGImage.Create;
  try
    Jpg.LoadFromFile('loquesea.xxx');
    Redimensionar(Jpg,100,100);
    jvdbimage1.picture.Assign(Jpg);
  finally
    Jpg.Free;
  end;
end;

Last edited by seoane : 10/05/2006 at 18:53.
Reply With Quote
  #4  
Old 10/05/2006
dec's Avatar
dec dec is offline
Moderador
 
Join Date: Dec 2004
Location: Alcobendas, Madrid, España
Posts: 13,142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Quote:
Originally Posted by seoane
Con el permiso de dec voy a añadir un poco de codigo a la explicacion que te dio.
Eso, eso, y sin mi permiso también, que así quedan las cosas mucho más claras.
__________________
David Esperalta
www.decsoftutils.com
Reply With Quote
  #5  
Old 10/05/2006
chux chux is offline
Miembro
 
Join Date: Sep 2005
Posts: 69
Poder: 21
chux Va por buen camino
vale gracias, mañana en cuanto llegue al curro lo pruebo, pero fijo que va
Reply With Quote
  #6  
Old 24/11/2006
ingel ingel is offline
Miembro
 
Join Date: Jun 2003
Posts: 244
Poder: 24
ingel Va por buen camino
me ha interesado este hilo ...

lo que yo necesitaria es redimensionar pero trabajando con el 'peso' de la impagen..por ej. levanto imagenes de 10 MB y necesito grabarlas en menos de 900K.. se puede hacer algo asi?
Perdon si no corresponde aqui la pregunta .. pero como los aqui presentes han lidiado con esto ...
sds
Ingel
Reply With Quote
  #7  
Old 28/11/2006
Neftali [Germán.Estévez]'s Avatar
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Join Date: Jul 2004
Location: Barcelona - España
Posts: 19,449
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
También se puede echar un vistazo a la sección de trucos del ClubDelphi.
__________________
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.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Guardar antes de que mi aplicacion se cierre Gelmin Varios 4 24/09/2008 09:20
Manipular Tamaño en Imagen JPG???? AGAG4 Gráficos 6 16/06/2005 22:42
Cambiar el tamaño de una imagen inter_mercadeo Gráficos 2 25/02/2005 17:43
Tamaño de una imagen seduerey Gráficos 8 26/08/2004 09:52
poner invisible una imagen justo antes de imprimir en quickreport soyhugo Varios 6 16/02/2004 15:02


All times are GMT +2. The time now is 01:52.


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