resim büyütme ve küçültme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
zeynel6363
Üye
Mesajlar: 25
Kayıt: 27 Kas 2014 02:32

resim büyütme ve küçültme

Mesaj gönderen zeynel6363 »

merhaba arkadaşlar.
formuma ScrollBar1 ve Image1 ekledim. iki tane de button ekledim. butonların biri + diğeri ise -.
+ butonuna basınca Image1 içindeki haritayı büyütecek (Yakınlaştıracak), - butonuna basınca ise Image1 içindeki haritayı küçültecek (uzaklaştıracak).
bu konu ile ilgili internetten biraz araştırdım ama bu konu hakkında Türk sitelerde fazla bilgi yok.bu konuda bana yardımcı olursanız sevinirim...
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: resim büyütme ve küçültme

Mesaj gönderen G.Arkas »

Burada detaylı anlatım mevcut.(Örnek kod da var)

http://stackoverflow.com/questions/3028 ... ing-delphi
Resim
zeynel6363
Üye
Mesajlar: 25
Kayıt: 27 Kas 2014 02:32

Re: resim büyütme ve küçültme

Mesaj gönderen zeynel6363 »

verdiğiniz siteye baktım.yabancı bir site denedim olmadı. tekrar deneyeceğim bakalım nerde hata yapmışım.yada onlarbi yerde hata yaptı :)
zeynel6363
Üye
Mesajlar: 25
Kayıt: 27 Kas 2014 02:32

Re: resim büyütme ve küçültme

Mesaj gönderen zeynel6363 »

kardeş Allah razı olsun yardımın için.kod çalıştı. üstteki kod yanlıştı. alttaki koda baktım denedim çalıştı.çalışan kod şu:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type
TForm1 = class(TForm)
TrackBar1: TTrackBar;
ScrollBox1: TScrollBox;
imgmain: TImage;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
private
bmpmain: TBitmap;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
const
FULLSCALE = 100;
procedure TForm1.FormCreate(Sender: TObject);
begin
imgmain.Left := 0;
imgmain.Top := 0;

bmpmain := TBitmap.Create;
bmpmain.LoadFromFile(ExtractFilePath(Application.ExeName) + '610x.bmp');
bmpmain.PixelFormat := pf32bit;

TrackBar1.Min := FULLSCALE div 10; // %10
TrackBar1.Max := FULLSCALE * 2; // %200
TrackBar1.PageSize := (TrackBar1.Max - TrackBar1.Min) div 19;
TrackBar1.Frequency := TrackBar1.PageSize;
TrackBar1.Position := FULLSCALE;

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
bmpmain.Free;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
var
Zoom: Integer;
begin
Zoom := TrackBar1.Position;
if not (Visible or (Zoom = FULLSCALE)) or (Zoom = 0) then
Exit;

SetMapMode(imgmain.Canvas.Handle, MM_ISOTROPIC);
SetWindowExtEx(imgmain.Canvas.Handle, FULLSCALE, FULLSCALE, nil);
SetViewportExtEx(imgmain.Canvas.Handle, Zoom, Zoom, nil);

imgmain.Width := Round(bmpmain.Width * Zoom / FULLSCALE);
imgmain.Height := Round(bmpmain.Height * Zoom / FULLSCALE);
if Assigned(imgmain.Picture.Graphic) then begin
imgmain.Picture.Graphic.Width := imgmain.Width;
imgmain.Picture.Graphic.Height := imgmain.Height;
end;
imgmain.Canvas.Draw(0, 0, bmpmain);

Label1.Caption := 'Zoom: ' +
IntToStr(Round(TrackBar1.Position / FULLSCALE * 100)) + '%';

end;

end.
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: resim büyütme ve küçültme

Mesaj gönderen Hashirama »

Firemonkey ile yapmak istersen çok daha basit bir şekilde halledebilirsin.

Kod: Tümünü seç

//büyütmek için
image1.scale.x:=image1.scale.x + 0.1;
image1.scale.y:=image1.scale.y + 0.1;
Cevapla