24/01/2006

Como Alterar TamanhoxAltura de BMP

Pessoal como posso alterar o Tamanho e a altura de um arquivo bmp, estou usando o seguinte código, mas não funciona....

var BMP: TBitMap;

begin
BMP := TBitMap.Create;
if OpenPictureDialog1.Execute then
begin
if IBdtsCongressos.State in [dsInsert, dsEdit] then
begin
BMP.LoadFromFile(OpenPictureDialog1.FileName);
BMP.Width:=105;
BMP.Height:=105;
IBdtsCongressosLogo.Assign( BMP );
end;
end;

Obrigado...


Estanieski

Respostas

28/03/2006

Adalberto

Segue o exemplo abaixo:

OBS: a imagem será impressa com o valor da porcentagem colocado no segundo parâmetro da chamada da função. Para valores menores que 100 ela será reduzida. Para valor igual a 100 ela será do mesmo tamanho e para valores maiores que 100 ela será ampliada. Boa sorte...


Autor: Sergio Canonigo Jr.


private
function ScalePercentBmp(bitmp: TBitmap; iPercent: Integer): Boolean;


function TForm1.ScalePercentBmp(bitmp: TBitmap;
iPercent: Integer): Boolean;
var
TmpBmp: TBitmap;
ARect: TRect;
h, w: Real;
hi, wi: Integer;
begin
Result := False;
try
TmpBmp := TBitmap.Create;
try
h := bitmp.Height * (iPercent / 100);
w := bitmp.Width * (iPercent / 100);
hi := StrToInt(FormatFloat(´#´, h)) + bitmp.Height;
wi := StrToInt(FormatFloat(´´, w)) + bitmp.Width;
TmpBmp.Width := wi;
TmpBmp.Height := hi;
ARect := Rect(0, 0, wi, hi);
TmpBmp.Canvas.StretchDraw(ARect, Bitmp);
bitmp.Assign(TmpBmp);
finally
TmpBmp.Free;
end;
Result := True;
except
Result := False;
end;
end;


// Example:
procedure TForm1.Button1Click(Sender: TObject);
begin
ScalePercentBmp(Image1.Picture.Bitmap, 33);
end;


Responder Citar