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 16-04-2004
raiden00 raiden00 is offline
Registrado
 
Registrado: abr 2004
Posts: 3
Poder: 0
raiden00 Va por buen camino
Question Cambiar tamaño de imágenes jpg, bmp, gif...

Hola! Aunque he estado mirando este foro desde hace bastante tiempo, ésta es la primera vez que escribo.
Me interesaría saber cómo cambiar el tamaño de las imágenes por código, es decir, cómo cambiar por ejemplo el tamaño gigante de las fotos de las cámaras digitales a uno más pequeñito para que ocupe menos espacio.

El caso es que pretendo hacer un programa que convierta el tamaño de todas las fotos de un directorio por lo que el procedimiento no debería ser demasiado lento.

Muchas gracias a todos por vuestra ayuda en este foro, espero alguna respuesta!!
Responder Con Cita
  #2  
Antiguo 16-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para un bitmap podrías leer la imagen en un TBitmap y en otro TBitmap al que inicializas con las dimensiones deseadas usas el método StretchDraw de su propiedad Canvas, algo así como (no probado):


Código:
var
  Origen, Destino: TBitmap;
  Rect: TRect;
 
begin
  Origen := TBitmap.Create;
  Origen.LoadFromFile('bitmap.bmp');
 
  Destino := TBitmap.Create;
  Destino.Width := Ancho;
  Destino.Height := Altura;
 
  Rect := Rectangle(0, 0, Ancho, Altura);
  Destino.Canvas.StretchDraw(Rect, Origen);
 
  Origen.Free;
  Destino.Free;
end;
Para otro tipo de imagenes prmero las conviertes a bitmaps y procedes igual.

// Saludos
Responder Con Cita
  #3  
Antiguo 17-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Antes de las llamadas a free... yo añadiría una llamada a

Destino.SaveToFile('BitmapPequeno.bmp');

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 17-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jachguate
Antes de las llamadas a free... yo añadiría una llamada a

Destino.SaveToFile('BitmapPequeno.bmp');
Bueeeeno, él preguntó cómo cambiar el tamaño no cómo guardar el bitmap en un archivo.

// Saludos
Responder Con Cita
  #5  
Antiguo 01-05-2004
Nelson Alberto Nelson Alberto is offline
Miembro
 
Registrado: may 2003
Ubicación: Santiago, Rep. Dominicana
Posts: 30
Poder: 0
Nelson Alberto Va por buen camino
Hola Raiden00

Yo generalmente para reducir el tamaño de cualquier foto grabada en los formatos jpg y bmp, uso un programa que se llama PicaView, lo puedes bajar del internet, es totalmente gratis. ahora no me recuerdo el Link en donde lo encontre.

espero lo encuentre y te sea util.
__________________
EL Duque
Responder Con Cita
  #6  
Antiguo 01-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por raiden00
Me interesaría saber cómo cambiar el tamaño de las imágenes por código
Cita:
Empezado por Nelson Alberto
un programa que se llama PicaView
Salvo que este programa tenga un API que pueda ser llamado por código... creo que no has entendido bien la pregunta original...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 01-05-2004
raiden00 raiden00 is offline
Registrado
 
Registrado: abr 2004
Posts: 3
Poder: 0
raiden00 Va por buen camino
Hola de nuevo. En primer lugar gracias a todos por contestar.
Para Nelson Alberto: gracias por informarme de ese programa, pero como bien te ha dicho jachguate me interesaría poder hacerlo mediante código, si no lo haría con el Photoshop por ejemplo.

En cuanto al método de roman, he empleado un método similar sólo que cambiándolo un poco para que acepte imágenes jpg y los resultados no son malos. El método no es demasiado rápido pero lo peor es que se aprecia bastante pérdida de calidad en la imagen.

Mi nueva pregunta es si alguien conoce algún método para cambiar el tamaño sin perder tanta calidad. No debería ser demasiado complicado ya que lo que yo hago es disminuir el tamaño de las imágenes por lo que no hay que "inventar" nuevos pixeles como ocurre cuando se aumenta el tamaño.

Estoy haciendo un programa que cambia de tamaño todas las fotos elegidas, ya sean una por una o directorios así que si a alguien le interesa el código se puede poner en contacto conmigo en squique@hotmail.com

Espero que alguien pueda encontrar un nuevo método. Muchas gracias.
Responder Con Cita
  #8  
Antiguo 02-05-2004
Avatar de Jure
Jure Jure is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia, Vzla.
Posts: 528
Poder: 21
Jure Va por buen camino
Lightbulb ... mira esto ...

Hola raiden00 revisa este hilo, encontraras dos links que puden ayudarte en lo que quieres hacer:

http://www.clubdelphi.com/foros/showthread.php?t=9217

Espero que te sirvan.

Jure
__________________

"Dios juzga al árbol por sus frutos, y no por sus raíces"


Como esta la sibidigua ???
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 05:45:53.


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