Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Guardar captura de imagen a un tamaño determinado (https://www.clubdelphi.com/foros/showthread.php?t=67033)

rufo 24-03-2010 23:40:19

Guardar captura de imagen a un tamaño determinado
 
Hola amigos, aqui ando lata de nuevo resulta que tengo un programa que me permite tomar fotos con una camaraweb, todo esta bien pero al momento de guardar la imagen me la guarda muy grande en el cual esa foto la ocupo para hacer credenciales, quisiera ver si puedo definir el tamaño de la imagen al momento de guardarla o que me recomiendan.Les anexo el codigo que utilizo tanto para iniciar mi camaraweb y el de tomar fotos.

Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Ventana := capCreateCaptureWindowA('Ventana de captura',
      WS_CHILD OR WS_VISIBLE, image1.Left, image1.Top, image1.Width,
      image1.Height, form1.Handle, 0);
    IF Ventana <> 0 THEN
    BEGIN
      TRY
          SendMessage(Ventana, WM_CAP_DRIVER_CONNECT, 0, 0);
          SendMessage(Ventana, WM_CAP_SET_PREVIEWRATE, 40, 0);
          SendMessage(Ventana, WM_CAP_SET_PREVIEW, 1, 0);
      EXCEPT
          RAISE;
      END;
    END
    ELSE
    BEGIN
      MessageDlg('Error al conectar Webcam', mtError, [mbok], 0);
    END;
end;

Código:

procedure TForm1.BtnGuardarImagenClick(Sender: TObject);
 begin
 IF Ventana <> 0 THEN
  BEGIN
  Guardar.FileName := 'Captura de la imagen';
  Guardar.DefaultExt := 'bmp';
  Guardar.Filter := 'Fichero Bitmap (*.bmp)*.bmp';
  IF Guardar.Execute THEN
    SendMessage(Ventana, WM_CAP_SAVEDIB, 0,
    longint(pchar(Guardar.FileName)));
  END;
end;

Por ultimo estoy usando delphi 2007 y gracias de antemano.

roman 25-03-2010 02:19:53

No he revisado el código pero una pregunta: ¿estás seguro de que la imagen es demasiado grande? Es decir, no es lo mismo el tamaño en pantalla que el tamaño de impresión. Entre mayor resolución tenga la imagen, más grande se verá en pantalla aunque al imprimir salga de tamaño normal.

// Saludos

BrunoBsso 25-03-2010 08:10:30

Hola.
Hace poco hice un programa para redimensionar imágenes y guardarlas en distintos formatos.
Te salvaste que estoy en la PC de escritorio y no en la note :D
Te dejo el código para que veas como se hace.
Código Delphi [-]
procedure TFPrincipal.Redimensionar(var Img:TBitmap; Alto,Ancho:Integer);
var
  BMP:TBitmap;
  Rect:TRect;
begin
  BMP:=TBitmap.Create;

  {Redimensionar}
  BMP.Width:=Ancho;
  BMP.Height:=Alto;
  Rect.Left:=0;
  Rect.Top:=0;
  Rect.Right:=Ancho;
  Rect.Bottom:=Alto;
  BMP.Canvas.StretchDraw(Rect,Img);

  {Devolver la imagen redimensionada}
  Img.Assign(BMP);
  BMP.Destroy;
end;
Saludos!

PD: si trabajaras con otro formato de imagen, por ejemplo JPGE, también sirve este código; solamente hay que convertir el formato después de redimensionarla.


La franja horaria es GMT +2. Ahora son las 18:21:00.

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