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-05-2006
chux chux is offline
Miembro
 
Registrado: sep 2005
Posts: 69
Poder: 19
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
Responder Con Cita
  #2  
Antiguo 10-05-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
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
Responder Con Cita
  #3  
Antiguo 10-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
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;

Última edición por seoane fecha: 10-05-2006 a las 18:53:39.
Responder Con Cita
  #4  
Antiguo 10-05-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por 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
Responder Con Cita
  #5  
Antiguo 10-05-2006
chux chux is offline
Miembro
 
Registrado: sep 2005
Posts: 69
Poder: 19
chux Va por buen camino
vale gracias, mañana en cuanto llegue al curro lo pruebo, pero fijo que va
Responder Con Cita
  #6  
Antiguo 24-11-2006
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
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
Responder Con Cita
  #7  
Antiguo 28-11-2006
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.275
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.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guardar antes de que mi aplicacion se cierre Gelmin Varios 4 24-09-2008 09:20:23
Manipular Tamaño en Imagen JPG???? AGAG4 Gráficos 6 16-06-2005 22:42:19
Cambiar el tamaño de una imagen inter_mercadeo Gráficos 2 25-02-2005 17:43:54
Tamaño de una imagen seduerey Gráficos 8 26-08-2004 09:52:55
poner invisible una imagen justo antes de imprimir en quickreport soyhugo Varios 6 16-02-2004 15:02:24


La franja horaria es GMT +2. Ahora son las 08:47:02.


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