zoom voltar ao tamanho normal

Delphi

21/03/2005

Todos os exemplos de fazer zoom em Canvas que achei aqui funcionam bem, mas somente funcionam para aumentar, quando tento fazer o inverso ou seja voltar ao tamanho normal. Ou não funciona ou trunca. Alguém tem algum que funciona tanto para mais quanto para menos?


Acacio

Acacio

Curtidas 0

Respostas

Fer_nanda

Fer_nanda

21/03/2005

Como vc está fazendo hj?

Qdo precisei dar zoom na imagem fiz uma gambi...
Deixei a propriedade do image stratch := true
 //para aumentar
  Image.Width := Image.Width + 50;
  Image.Height := Image.Height + 70;


//para diminuir
  Image.Width := Image.Width - 50;
  Image.Height := Image.Height - 70; // valor q defini


Se está fazendo de outra maneira me mostra.. me interessei por uma alternativa.


GOSTEI 0
Nerdex

Nerdex

21/03/2005

Nanda! Certamente existem outras alternativas mais plausíveis...
Olhe este exemplo... mais requintado e chick:

procedure SetCanvasZoomFactor(Canvas: TCanvas; AZoomFactor: Integer);
begin
  if AZoomFactor = 100 then
    SetMapMode(Canvas.Handle, MM_TEXT)
  else
  begin
    SetMapMode(Canvas.Handle, MM_ISOTROPIC);
    SetWindowExtEx(Canvas.Handle, AZoomFactor, AZoomFactor, nil);
    SetViewportExtEx(Canvas.Handle, 100, 100, nil);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  bitmap: TBitmap;
begin
  bitmap := TBitmap.Create;
  try
    bitmap.Assign(Form1.image1.Picture.Bitmap);
    SetCanvasZoomFactor(bitmap.Canvas, 70);
    Canvas.Draw(30, 30, bitmap);
  finally
    bitmap.Free
  end;
end;


Visse? Que achou?


GOSTEI 0
Nerdex

Nerdex

21/03/2005

Esta pág. com vários ´códigos gráficos em .pas´ que muito me auxiliou na implemetação de um
projeto de logística q desenvolvi... com digitalização de imagens de uma cidade inteira...

[url]http://www.swissdelphicenter.com/en/grafik.php[/url]

Contém vários exemplos para zoom entre outras dezenas de coisas do gênero...
Divirtam-se... e bom trabalho...


GOSTEI 0
Fer_nanda

Fer_nanda

21/03/2005

Olá NerdeX... excelente procedimento mesmo (muito mais profissional ehehe). Já testei e alterei as rotinas aqui.
Bem interessante o site.. sugiro colocá-lo no fórum de dicas.
Obrigada.

Pra mim está funcionando tanto pra aumentar, diminuir e voltar ao original. Como vc está controlando isso Acacio?


GOSTEI 0
POSTAR