GARANTIR DESCONTO

Fórum ajustar tamanho da foto gravada #181527

11/09/2003

0

alguem sabe como posso alterar o tamanho de uma foto pelo delphi
estou fazendo a gevacao da seguinte maneira (converto a foto para jpeg):

[i:da8e2b0b22]procedure TF_Internet.SpeedButton1Click(Sender: TObject);
var
FileStream : TFileStream;
Bmp: TBitmap;
JPeg: TJPegImage;
Extensao : String;
Tamanho : Double;
begin
opdFoto.Execute; //executa caixa de dialogo para pegar foto
if (opdFoto.FileName <> Null) and (opdFoto.FileName <> ´´) then begin
try
Extensao := ExtractFileExt(opdFoto.FileName);
if (Extensao = ´.bmp´) then begin
Bmp := TBitmap.Create;
try
Bmp.LoadFromFile(opdFoto.FileName);
JPeg := TJPegImage.Create;
try
JPeg.CompressionQuality:=25;
JPeg.Assign(Bmp);
JPeg.SaveToFile(ChangeFileExt(opdFoto.FileName, ´.jpg´));
finally
JPeg.Free;
end;
finally
Bmp.Free;
end;
FileStream:=TFileStream.Create(ChangeFileExt(opdFoto.FileName, ´.jpg´), fmOpenRead or fmShareDenyWrite);
Tamanho := FileStream.Size;
Tamanho := (Tamanho / 1024);
if Tamanho > 20 then begin
ShowMessage(´A Imagem excede o tamanho ideal para cadastro.´+#13+
´Selecione uma imagem menor para o cadastro.´);
exit;
end;
if not (qryProduto.State in [dsInsert, dsEdit]) then begin
qryProduto.Edit;
(qryProduto.FieldByName(´Foto2´) as TBlobField).LoadFromStream(FileStream);
qryProduto.Post;
end
else
(qryProduto.FieldByName(´Foto2´) as TBlobField).LoadFromStream(FileStream);
FileStream.Free;
dbFoto.Picture.LoadFromFile(ChangeFileExt(opdFoto.FileName, ´.jpg´)); //captura o foto do arquivo selecionado
end
else {if (Extensao = ´.jpg´) then} begin
FileStream:=TFileStream.Create(opdFoto.FileName, fmOpenRead or fmShareDenyWrite);
Tamanho := FileStream.Size;
Tamanho := (Tamanho / 1024);
if Tamanho > 20 then begin
ShowMessage(´A Imagem excede o tamanho ideal para cadastro.´+#13+
´Selecione uma imagem menor para o cadastro.´);
exit;
end;
if not (qryProduto.State in [dsInsert, dsEdit]) then begin
qryProduto.Edit;
(qryProduto.FieldByName(´Foto2´) as TBlobField).LoadFromStream(FileStream);
qryProduto.Post;
end
else
(qryProduto.FieldByName(´Foto2´) as TBlobField).LoadFromStream(FileStream);
FileStream.Free;
dbFoto1.Picture.LoadFromFile(opdFoto.FileName); //captura o foto do arquivo selecionado
end;
except
ShowMessage(´Não foi possível ler a foto.´);
end;
end;
end;[/i:da8e2b0b22]

consegui fazer uma rotina para q nao deixe ultrapassar um determinado tamanho em bytes, mas gostaria de alterar o tamanho real da foto (largura e altura)
jah tentei:

JpegImage.Width := 70;
JpegImage.Height := 68;

ou

dbfoto1.Picture.Width := 70;
dbfoto1.Picture.Height := 68;

mas aparece um msg dizendo q nao posso alterar o tamanho de uma iamgem

obrigada
K-ROL


K-rol

K-rol

Responder

Posts

11/09/2003

Marcelo.c

Talvez tenha a ver com a propriedade Strecht.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar