Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-05-2006
ANG4L ANG4L is offline
Miembro
 
Registrado: nov 2005
Posts: 67
Poder: 19
ANG4L Va por buen camino
(OPINION) Componente para redimensionar imagenes

Buenas gente !
A ver.... lo que necesito hacer es simplemente si una imagen, es mas grande que una determinada medida, ajustarla (proporcionalmente) y guardarla (preferentemente) para no tener que ajustarla cada vez que la quiera volver a cargar (lo mas logico del mundo )

No necesito grandes componentes de manejo de imagenes, ni nada, complejo

Que me recomiendan?

Saludos, gracias !
__________________
Moment of chaos....
Responder Con Cita
  #2  
Antiguo 13-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Para redimensionar una imagen no hace falta instalar un componente, es una tarea sencilla que podemos hacer hacer nosotros por codigo.

Aqui te dejo 2 funciones que para redimensionar una imagen:
Código Delphi [-]
// Esta cambia el alto y ancho, estirando la imagen si es necesario
procedure Redimensionar(Imagen: TGraphic; Ancho, Alto: Integer);
var
  Bitmap: TBitmap;
begin
  Bitmap:= TBitmap.Create;
  try
    Bitmap.Width:= Ancho;
    Bitmap.Height:= Alto;
    Bitmap.Canvas.StretchDraw(Bitmap.Canvas.ClipRect,Imagen);
    Imagen.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
end;

// Esta otra mantiene la relacion entre alto y ancho
procedure Proporcional(Imagen: TGraphic; Ancho, Alto: Integer);
var
  Bitmap: TBitmap;
begin
  Bitmap:= TBitmap.Create;
  try
    if  (Ancho/Imagen.Width) < (Alto/Imagen.Height) then
      Alto:= Trunc((Ancho*Imagen.Height)/Imagen.Width)
    else
      Ancho:= Trunc((Imagen.Width*Alto)/Imagen.Height);
    Bitmap.Width:= Ancho;
    Bitmap.Height:= Alto;
    Bitmap.Canvas.StretchDraw(Bitmap.Canvas.ClipRect,Imagen);
    Imagen.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
end;

Para usarlas lo puedes hacer algo asi:
Código Delphi [-]
uses JPEG;

var
  Jpg: TJPEGImage;
begin
  Jpg:= TJPEGImage.Create;
  try
    Jpg.LoadFromFile('d:\Original.jpg');
    Redimensionar(Jpg,100,100);
    Jpg.SaveToFile('d:\Copia.jpg');
  finally
    Jpg.Free;
  end;
end;

O tambien con un btimap
Código Delphi [-]
var
  Bmp: TBitmap;
begin
  Bmp:= TBitmap.Create;
  try
    Bmp.LoadFromFile('d:\Original.bmp');
    Proporcional(Bmp,100,100);
    Bmp.SaveToFile('d:\Copia.bmp');
  finally
    Bmp.Free;
  end;
end;
Responder Con Cita
  #3  
Antiguo 13-05-2006
ANG4L ANG4L is offline
Miembro
 
Registrado: nov 2005
Posts: 67
Poder: 19
ANG4L Va por buen camino
Solucionado

Genial, yo creo que con eso me alcanzara. No habia nunca antes tenido que manejar imagenes dentro de un programa, asi que como primeros pasos, me la hiciste bastante sencillo, se AGRADECE MUCHO.

Saludos,
__________________
Moment of chaos....
Responder Con Cita
  #4  
Antiguo 24-02-2010
petete2008 petete2008 is offline
Miembro
 
Registrado: oct 2008
Posts: 109
Poder: 16
petete2008 Va por buen camino
Y se podría hacer que tu selecciones la imagen que deseas en el formato que quieras y él mire que extensión es y la redimensione.
Es que con tu método solo sirve para bmp y jpg ¿y si fuera tif o gif?
Gracias
Responder Con Cita
  #5  
Antiguo 08-11-2011
petete2008 petete2008 is offline
Miembro
 
Registrado: oct 2008
Posts: 109
Poder: 16
petete2008 Va por buen camino
¿Se podría central verticalmente y horizontalmente una imagen en un cuadrado de unas ciertas dimensiones haciendo que aparezcan franjas blancas en los lados si fuese necesario?
Responder Con Cita
  #6  
Antiguo 08-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, recuerda nuestra guía de estilo, gracias.
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
Redimensionar imagenes con buena calidad? RazoR Gráficos 17 06-06-2006 21:47:37
Un dbgrid con imagenes para tactil nugame Varios 2 19-11-2005 22:14:14
Algun componente Dbaware que hayan comprobado que puede guardar imagenes jpg en MYSQL delphivan MySQL 0 30-05-2005 16:37:37
Redimensionar imagenes a unas medidas determinadas Jan_polero Gráficos 1 01-02-2005 14:18:32
ruta de un directorio para imagenes squenda OOP 3 01-09-2004 20:31:55


La franja horaria es GMT +2. Ahora son las 00:39:56.


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