Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Tamaño de una imagen (https://www.clubdelphi.com/foros/showthread.php?t=7064)

seduerey 02-02-2004 10:16:54

Tamaño de una imagen
 
Me gustaría saber cómo cambiar el tamaño (manteniendo la proporción o no) de una imagen (jpg, gif, bmp...) guardada en disco.
También me gustaría saber si es posible abrir o previsualizar un .PSD (archivo de photoshop).
Gracias y un saludo

Gydba 02-02-2004 12:52:04

No tengo una respuesta exacta, pero quizás te pueda ayudar visitar esta web:
http://homepages.borland.com/efg2lab...Processing.htm

Que tiene variada información, así como ejemplos en código fuente, sobre procesado de imágenes.

En cuanto a lo de los archivos Photoshop desde VB había manera de abrirlos, calculo que delphi no se debe quedar atrás.

delphi.com.ar 02-02-2004 15:07:43

Te recomiendo buscar información sobre el método StretchDraw del TCanvas, o funciones como StretchBlt...

Saludos!

cht666cht 11-02-2004 21:00:05

yo lo hago asi:

Bitmap1 := TBitmap.Create;
Bitmap2 := TBitmap.Create;
try
Bitmap1.LoadFromFile('c:\imagen.bmp');
Bitmap2.PixelFormat := Bitmap1.PixelFormat;
Bitmap2.Width := 200; // nuevo tamaño
Bitmap2.Height := 200;
Bitmap2.Canvas.StretchDraw(0, 0, Bitmap2.Width, Bitmap2.Height, Bitmap1);
Bitmap2.SaveToFile('c:\imagencambiada.bmp');
finally
Bitmap2.Free;
Bitmap1.Free;
end;



y si es un jpg:

JPG := TJPEGImage.Create;
Bitmap := TBitmap.Create;
try
JPG.LoadFromFile('c:\imagen.jpg');
Bitmap.PixelFormat := pf24Bit;
Bitmap.Width := 200; // nuevo tamaño
Bitmap.Height := 200;
Bitmap.Canvas.StretchDraw(0, 0, Bitmap.Width, Bitmap.Height, JPG);
JPG.Assign(Bitmap);
JPG.SaveToFile('c:\imagencambiada.jpg');
finally
Bitmap.Free;
JPG.Free;
end;

lo hago asi porque no puedes acceder directamente al canvas de un jpegimage, pero si que puedes hacerlo con un bitmap, y luego con el assign lo conviertes a jpg.

para usar el tjpegimage añade la unit JPEG al uses.

espero que te sirva, bueno, que te funcione, pq lo he escrito de memoria :)

bububin 31-05-2004 18:20:06

Cita:

Empezado por cht666cht
yo lo hago asi:

Bitmap1 := TBitmap.Create;
Bitmap2 := TBitmap.Create;
try
Bitmap1.LoadFromFile('c:\imagen.bmp');
Bitmap2.PixelFormat := Bitmap1.PixelFormat;
Bitmap2.Width := 200; // nuevo tamaño
Bitmap2.Height := 200;
Bitmap2.Canvas.StretchDraw(0, 0, Bitmap2.Width, Bitmap2.Height, Bitmap1);
Bitmap2.SaveToFile('c:\imagencambiada.bmp');
finally
Bitmap2.Free;
Bitmap1.Free;
end;



y si es un jpg:

JPG := TJPEGImage.Create;
Bitmap := TBitmap.Create;
try
JPG.LoadFromFile('c:\imagen.jpg');
Bitmap.PixelFormat := pf24Bit;
Bitmap.Width := 200; // nuevo tamaño
Bitmap.Height := 200;
Bitmap.Canvas.StretchDraw(0, 0, Bitmap.Width, Bitmap.Height, JPG);
JPG.Assign(Bitmap);
JPG.SaveToFile('c:\imagencambiada.jpg');
finally
Bitmap.Free;
JPG.Free;
end;

lo hago asi porque no puedes acceder directamente al canvas de un jpegimage, pero si que puedes hacerlo con un bitmap, y luego con el assign lo conviertes a jpg.

para usar el tjpegimage añade la unit JPEG al uses.

espero que te sirva, bueno, que te funcione, pq lo he escrito de memoria :)

Como se puede añadir en el uses el JPEG?. A mi me da error y me dice que no encuentra el jpeg.dcuil.. QUe puede pasar?

delphi.com.ar 31-05-2004 18:29:07

Cita:

Empezado por bububin
Como se puede añadir en el uses el JPEG?. A mi me da error y me dice que no encuentra el jpeg.dcuil.. QUe puede pasar?

¿Cuál es el error que te da? File Not Found jpeg.dcu
¿Tienes la dcu en $(delphi)\Lib?

Saludos!

delphi.com.ar 31-05-2004 18:34:09

Recién ahora me doy cuenta que posteaste esto en otro hilo aclarando que se trata de Delphi 8. Te recomiendo no repetir las preguntas en hilos diferentes, te respondo en el otro.

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

El_Perrito 26-08-2004 02:10:20

Sigo Vivo
 
Aunque este hilo ya tiene algun tiempo, les doy las gracias porque estaba a punto de tirarme del edificio cuando encontre aqui la respuesta que andaba buscando(eso de tirarme es broma), necesitaba desplegar un jpeg en un drawgrid y si lo desplegaba pero de un tamaño mas grande que el tamaño de las celdas de mi DrawGrid y lo solucione con eso del StretchDraw del TCanvas

son unos genios.

Y coincido con ustedes: "Antes de preguntar hay que buscar"

Un Hermano Mexicano los Saluda :D

jachguate 26-08-2004 09:52:55

Gracias, El_perrito, por tu buen ejemplo. :D

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 18:46:24.

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