Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Redimensionar imagenes y enviar (https://www.clubdelphi.com/foros/showthread.php?t=53690)

Dado de baja 27-02-2008 13:05:41

Redimensionar imagenes y enviar
 
Hola de nuevo.

Veréis, necesito un programa para los que tenemos web que redimensione una carpeta de imágnes y las envíe por FTP a un servidor.

No se si hay algo en el mercado, he mirado por encima y no he visto nada que haga las dos cosas.

Así que me voy a poner manos a la obra y lo intentaré crear con Delphi, pero no se muy bien como va lo de las imagenes y menos redimensionar.

Os pido ayuda en los siguientes puntos:
  • Si hay un programa que haga las dos cosas y sea gratis, ¿ me podeis pasar info ?
  • ¿ como se redimensiona manteniendo proporciones ?
  • La idea es que sea en lote, es decir una carpeta.
gracias de antemano.

Jab 23-07-2008 12:34:41

Hola, para redimensionar las imágenes parte de este código
Código:

// ----- Code Starts Here -----

program Project1;

{$APPTYPE CONSOLE}

uses
  Classes, Windows, SysUtils, Dialogs, JPEG, Graphics;

const
        SizePct : integer = 50; { The new image will have 50% of the original }

var
        OpenDlg : TOpenDialog;
        SaveDlg : TSaveDialog;
        oJPG    : TJPEGImage;
        oBmp    : TBitmap;


begin
        OpenDlg := TOpenDialog.Create(nil);
        SaveDlg := TSaveDialog.Create(nil);

        if (OpenDlg.Execute) then
        begin
                try
                  begin
                        oJPG := TJPEGImage.Create;
                        oJPG.LoadFromFile(OpenDlg.FileName);
                  end
                except
                        MessageBox(
                                0,
                                PChar('Error while trying to open ' +
                                OpenDlg.FileName +
                                '.'),
                                PChar('Error'),
                                MB_OK or MB_ICONERROR
                        );
                        exit;
                end;

                oBmp := TBitmap.Create;
                oBmp.Width := Round(oJPG.Width * SizePct / 100);
                oBmp.Height := Round(oJPG.Height * SizePct / 100);
                oBmp.Canvas.StretchDraw(
                        Rect(0, 0, oBmp.Width - 1, oBmp.Height - 1),
                        oJPG
                );

                oJPG.Assign(oBmp);
                oJPG.Compress;

                if (SaveDlg.Execute) then
                begin
                        oJPG.SaveToFile(SaveDlg.FileName);
                end;

                oBmp.Free;
                oJPG.Free;
        end;

        OpenDlg.Free;
        SaveDlg.Free;

end.


Vas grabando las imágenes en ese directorio y cuando termines, para enviar puedes usar el componente de FTP existente en Delphi o las Indy.
¡¡Suerte y saludos!!


La franja horaria es GMT +2. Ahora son las 00:35:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi