Fórum Zoom no TImage #179977
04/09/2003
0
Estou precisando do código para afzer um zoom(aproximar e voltar a imagem), se alguem ter o código, poderia me ajudar,
obrigado
Luizfernando777
Curtir tópico
+ 0Posts
05/09/2003
Cebikyn
procedure SetCanvasZoomFactor(Canvas: TCanvas; AZoomFactor: Integer); var i: 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;
Depois basta chamar:
SetCanvasZoomFactor(Image1.Canvas, zoom)
Em que [i:08cfae12c6]zoom[/i:08cfae12c6] é a porcentagem de zoom.
Gostei + 0
05/09/2003
Luizfernando777
obrigado pelo código, mas não está funcionando
Gostei + 0
05/09/2003
Cebikyn
procedure TForm1.Button1Click(Sender: TObject); var bitmap: TBitmap; begin bitmap := TBitmap.Create; try bitmap.Assign(Image1.Picture.Bitmap); SetCanvasZoomFactor(bitmap.Canvas, 50); Image1.Canvas.Draw(0, 0, bitmap); finally bitmap.Free end; end;
Gostei + 0
06/09/2003
Luizfernando777
mas eu deveria ter me explicado melhor,
eu estou precisando de um código mais apurado,
é que eu estou trabalhando com mapas, cartas topográficas,
mapas urbanos essas coisas.
Então o motivo de fazer zoom e voltar imagem,
obrigado,
se você achar melhor este é meu e-mail
luizfernando777@yahoo.com.br
obrigado + 1 vez
fernando
Gostei + 0
06/09/2003
4_olho
Como a sua necessidade é grande, é provável que não possa trabalhar com imagens comuns (bitmaps) e sim com imagens ´vetoriais´. Estas, independentes do tamanho, podem ser aumentadas e reduzidas facilmente, sem perda de qualidade. Só não creio que haja alguma aplicação desktop de baixo custo que vá satisfazê-lo. Pelo menos não tão fácil quanto imagina.
Um alternativa é digitalizar a imagem com alta resolução (1200 dpi) ou mais e ao usá-la no micro (72, 96 ou 120 dpi) a imagem fica ´enorme´, podendo então sempre dar o zoom para baixo. Mesmo esta alternativa exigirá muito espaço em disco e muita memória, pois as imagens, por pequenas que sejam, terão por volta de 30Mb.
Dê uma espiada no Guia 4 Rodas em CD e tente ver como trabalham.
Gostei + 0
07/09/2003
Luizfernando777
Na verdade o meu projeto já está pronto,
eu tenho o mapa da cidade já em Formato .BMP,
que está com 8.3 mb, está funcionando perfeitamente,
Na questão do Micro, não é o problema,
está em um Pentium 1.8Gz, 512 Ram DDR, Off-Board,
E a imagem só é carregada na necessidade da mesma,
caso contrário não fica na Memória,
Mas, qdo eu usei sua ´Procedure´, ainda deu
alguns problemas, é isso mesmo que preciso,
estou tentando implementar um código que tenho aqui,
mas não está dando muito certo,
A imagem amplia, mas fica restria a um tamanho.
Se você puder me manda o seu e-mail,
mando o meu teste e aí você vê o que está acontecendo.
obrigado
Gostei + 0
07/09/2003
Cebikyn
Como assim? Se vc estiver se referindo a dar zoom em apenas uma área, basta alterar os números em ´Image1.Canvas.Draw([b:830a3add79]0[/b:830a3add79],[b:830a3add79]0[/b:830a3add79],bitmap)´. Se não for isso, pode usar o link de e-mail logo abaixo da minha assinatura.
Existe sim, tem até uma coleção de componentes pro Delphi, [i:830a3add79]free[/i:830a3add79] e com todos os códigos fontes, que trabalha com arquivos do AutoCAD, chama [url=http://www.torry.net/cad.htm]CADSys 4.2[/url]. E é relativamente fácil de usar.
Gostei + 0
07/09/2003
Luizfernando777
obrigado
Gostei + 0
07/09/2003
4_olho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)