PDA

Ver la Versión Completa : Cambiar tamaño de imágenes jpg, bmp, gif...


raiden00
17-04-2004, 00:27:37
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!!

roman
17-04-2004, 00:40:30
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):



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

jachguate
17-04-2004, 01:48:17
Antes de las llamadas a free... yo añadiría una llamada a

Destino.SaveToFile('BitmapPequeno.bmp');

Hasta luego.

;)

roman
17-04-2004, 01:58:19
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. :D

// Saludos

Nelson Alberto
01-05-2004, 05:36:36
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.

jachguate
01-05-2004, 07:15:57
Me interesaría saber cómo cambiar el tamaño de las imágenes por código
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.

;)

raiden00
01-05-2004, 22:27:48
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.

Jure
02-05-2004, 22:49:44
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 (http://www.clubdelphi.com/foros/showthread.php?t=9217)

Espero que te sirvan.

Jure