PDA

Ver la Versión Completa : Redimensionar imagenes y enviar


Cecilio
27-02-2008, 13:05:41
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

// ----- 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!!