Delphi - Redimensionar un archivo JPG

 
Vista:

Redimensionar un archivo JPG

Publicado por Dopazo (4 intervenciones) el 20/05/2005 09:35:34
Hola.
Necesito redimensionar un archivo Jpg, he probado a cargarlo en un TImage, lo redimensiono, pero al guardarlo, sigue teniendo el tamaño antiguo.

En un TPicture me dice que las propiedades de tamaño son sólo de lectura.

Y con el TBItmap, podría redimensionarla y guardarla, pero no me deja cargar un JPG en un TBitmap.

¿Alguna idea?

Gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Redimensionar un archivo JPG

Publicado por beosman (163 intervenciones) el 26/05/2005 10:45:00
¿Cual es el algoritmo que usas para redimensionar? Te recuerdo que aunque cambies el tamaño de un TImage, la imagen original no se modifica, sólo la que se muestra en pantalla.

Para guardar un bitmap como un jpg puedes hacer lo siguiente:

jpg: TJEGImage;

jpg := TJPEGImage.Create();
jpg.Assign(bitmap);

Sino puedes asignar la imagen también:

jpg.Assign(Image1.Picture,Graphic);

Saludos,

Diego :: beosman
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Como convierto un Jpg a Bmp?

Publicado por Dopazo (4 intervenciones) el 27/05/2005 12:02:49
Intento redimensionar cambiando las propiedades .width y .height, pero como tu dices, no hace nada.

El problema es que las imágenes las tengo en .JPG y sólo las puedo redimensionar si las paso a Bmp.

Así que , ¿Como puedo convertir un Jpg a Bmp?

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Como convierto un Jpg a Bmp?

Publicado por beosman (163 intervenciones) el 27/05/2005 18:36:00
Hola otra vez. Una de las formas es utilizar la función DIBNeeded para descomprimir el JPEG en un Bitmap para luego asignar esa imagen al bitmap:

b: TBitmap;
j: TJPEGImage;

begin
j := TJPEGImage.Create();
j.LoadFromFile('image.jpg');
j.DIBNeeded();
b := TBitmap.Create();
b.Assign(j);
// hacer lo que sea necesario con la imagen
end;

Más o menos es así, pruebalo a ver que te sale y busca en la ayuda la función DIBNeeded a ver si hay algún ejemplo.

Y para redimensionar la imagen es necesario que te curres un algoritmo (que suelen ser lentos pero funcionales).

Un saludo.

Diego :: beosman
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Redimensionar un archivo JPG

Publicado por BigLuis (713 intervenciones) el 27/05/2005 19:07:57
Mira mi contestacion http://www.lawebdelprogramador.com/news/mostrar_new.php?id=23&texto=Delphi&n1=281732&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
Puedes cambiar los parametros a tu gusto.Es solo un ejemplo, hay mil maneras mas y lo siento por Beosman pero no es tan lento.
Suerta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MIERDA

Publicado por Dopazo (4 intervenciones) el 31/05/2005 14:07:31
Mierda, tan cerca y por un pelo. Beosman, te estoy muy agradecido por la ayuda. BigLuis, muchísimas gracias por el algoritmo, me salvas la vida, pero, ¡el enlace dice que no existe esa nota!, podrías volver a pasármelo o enviármelo por mail. Muchas gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Yo también quiero...

Publicado por beosman (163 intervenciones) el 31/05/2005 15:05:22
A mi también me gustaría ver el algoritmo, ¿lo puedes volver a poner por aquí o mandarmelo al correo a mí también?

Muchas gracias. Saludos.

Diego :: beosman
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Yo también quiero...

Publicado por BigLuis (713 intervenciones) el 31/05/2005 16:07:12
Este es el enlace y a mi me funciona. De todas formas os puedo mandar una unidad que hice con varios procedimientos distintos que todos hacen lo mismo pero de distinta manera. Solo si realmente os interesa y os es necesaria. No quiero convertirme en un cartero.
Saludos
http://www.lawebdelprogramador.com/news/mostrar_new.php?id=23&texto=Delphi&n1=285449&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar