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 29-01-2009
Rako Rako is offline
Miembro
 
Registrado: mar 2007
Posts: 39
Poder: 0
Rako Va por buen camino
Crear un thumbnail rapido

Hola buenas,

Tengo una imagen en un fichero, una imagen grande, y la quiero convertir a una imagen pequeña (a una escala de como maximo 70 pixeles) para luego grabarla a jpg.

Para ello he probado varias formas de conseguirlo pero todas me parecen muy lentas...y cuano veia una posible opcion rapida no me deja, supongo q sera porque habra propiedades read only o hare algo mal o no se...he probado con componentes tipo jpeg,bmp,imageenproc,tiebitmap...... no se bien como hacerlo, pegare un poco de codigo:

var
scale: Integer;
jpg: TJpeg;
iebmp: tIEBitmap;

//cargo la imagen
jpg := TJpegImage.Create;
jpg.LoadFromFile(filename);

//simplemente busco la escala para dimensionar, poner la anchura o la altura a 70, y la otra en relacion.
if jpg.Height > jpg.Width then begin
scale := 70 / jpg.Height;
end else begin
scale := 70 / jpg.Width;
end;

//Esto si uso el jpeg para escalarlo
jpg.Height:=Round(jpg.Height * scale);
jpg.Width:=Round(jpg.Width * scale);

//si uso un iebitmap las dos lineas de arriba sobrarian y seria
iebmp:=TIEBitmap.Create(Round(jpg.Width * scale),Round(jpg.Height * scale));
iebmp.Canvas.StretchDraw(iebmp.Canvas.ClipRect, jpg);

Jpg:=TJpegImage.Create;
jpg.Assign(iebmp.VclBitmap);
jpg.SaveToFile('tmp_thumb.JPG');


Hacer cosas asi funciona pero es bastante lento...no hay un modo mas rapido? Con imageenproc parecia que se podia con el metodo resample, pero no he sabido cargar la imagen de un modo eficiente, tiene un imageenproc.bitmap.loadfromfile (o algo asi) que me peta....


gracias y un saludo
Responder Con Cita
  #2  
Antiguo 29-01-2009
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.269
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
Hola.
Antes de nada comemtarte, que cuando añadas código Delphi lo hagas entre los TAG's correspondientes.

En cuanto a la pregunta, revisa la sección de trucos del club, porque creo que hay alguno al respecto.
__________________
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
  #3  
Antiguo 20-04-2011
pato89xd pato89xd is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 13
Poder: 0
pato89xd Va por buen camino
hola, encontre ese truco pero no se como implementar el procedimiento que se muestra ahi, es este http://www.clubdelphi.com/trucos/ind...=120&scrollb=0 me podrias decir como?, gracias =)
Responder Con Cita
  #4  
Antiguo 20-04-2011
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.269
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
Al final del truco tienes un par de ejemplos de cómo hacer la llamada.
También puedes revisar en mi blog la entrada sobre "Antialiasing"; Hay código para generar miniaturas de una imagen.
__________________
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
  #5  
Antiguo 20-04-2011
pato89xd pato89xd is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 13
Poder: 0
pato89xd Va por buen camino
hola, gracias por tu respuesta, pero el problema no es al ahcer la llamada, sino dodne colocar el codigo en si :s, no la llamada si no el procedimiento
Responder Con Cita
  #6  
Antiguo 20-04-2011
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.269
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
Pues justo encima del otro. Como la llamada está en esa misma Unit no hay que definir nada más.
__________________
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
Ayudenme Rapido, Rapido omarys Varios 6 04-06-2011 09:45:34
seleccionar imagen de un thumbnail de imagenes carlo_acp Gráficos 4 24-09-2008 20:40:37
¿Qué es más rapido? jcarteagaf Humor 3 05-07-2008 02:48:58
Thumbnail para zoom oregon Gráficos 5 20-10-2006 09:47:13
Thumbnail para QuickReport D6 Cabanyaler Impresión 2 13-08-2004 11:06:50


La franja horaria es GMT +2. Ahora son las 07:59:29.


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