Delphi Can
FireMonkey Resimlerde Pan ve Zoom İşlemleri - Baskı Önizleme

+- Delphi Can (http://www.delphican.com)
+-- Forum: Eğitim (http://www.delphican.com/forum-egitim)
+--- Forum: Makale (http://www.delphican.com/forum-makale)
+--- Konu Başlığı: FireMonkey Resimlerde Pan ve Zoom İşlemleri (/firemonkey-resimlerde-pan-ve-zoom-islemleri.html)

Sayfalar: 1 2


FireMonkey Resimlerde Pan ve Zoom İşlemleri - Fesih ARSLAN - 10-01-2017

Merhaba;
Bildiğiniz gibi Image nesnesinin doğal Pan ve Zoom özelliği henüz yok. (İlerleyen sürümlerde olur İnşallah) Her iki özelliği kullanabilmek için aşağıdaki işlem adımlarını takip ederek projenize entegre edebilirsiniz.

Image nesnesinin Pan ve Zoom işlemleri için;

1- Forma bir adet GestureManager ve bir Image nesnesi yerleştirin.
2- Image nesnesine herhangi bir resim ekleyin.
3- Object Inspector'dan Formun Touch>GestureManager özelliğinde GestureManager1'i seçin.
4- Object Inspector'dan Formun Touch>InteractiveGestures özelliğinin Zoom ve Pan özelliğini True yapın.
5- projenin private bölümünde aşağıdaki tanımlamaları yapın;

 private
   FEnSonKonum: TPointF;
   FEnSonMesafe: Integer;

6- Formun OnGesture olayında aşağıdaki kodları yazın.

var
 LObj: IControl;
 LImage: TImage;
 LImageMerkez: TPointF;
begin
 //Zoom için
 if EventInfo.GestureID = igiZoom then
 begin
   LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
   if LObj is TImage then
   begin
     if (not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags)) and
       (not(TInteractiveGestureFlag.gfEnd in EventInfo.Flags)) then
     begin
       LImage := TImage(LObj.GetObject);
       LImageMerkez := LImage.Position.Point + PointF(LImage.Width / 2,
         LImage.Height / 2);
       LImage.Width := LImage.Width + (EventInfo.Distance - FEnSonMesafe);
       LImage.Height := LImage.Height + (EventInfo.Distance - FEnSonMesafe);
       LImage.Position.X := LImageMerkez.X - LImage.Width / 2;
       LImage.Position.Y := LImageMerkez.Y - LImage.Height / 2;
     end;
     FEnSonMesafe := EventInfo.Distance;
   end;
 end;

 //Pan için
 if EventInfo.GestureID = igiPan then
 begin
   LObj := Self.ObjectAtPoint(ClientToScreen(EventInfo.Location));
  if LObj is TImage then
   begin
     if not(TInteractiveGestureFlag.gfBegin in EventInfo.Flags) then
     begin
       LImage := TImage(LObj.GetObject);
       LImage.Position.X := LImage.Position.X + (EventInfo.Location.X - FEnSonKonum.X);
       LImage.Position.Y := LImage.Position.Y + (EventInfo.Location.Y - FEnSonKonum.Y);
     end;
       FEnSonKonum  := EventInfo.Location;
   end;
 end;

end;

Sonuç;
avj1xk.jpg

İyi çalışmalar


FireMonkey Resimlerde Pan ve Zoom İşlemleri - barisatalay - 10-01-2017

Ellerinize sağlık hocam Smile Vakitsizlikten paylaşamıyorum böyle şeyleri sayenizde herkes yararlanabiliyor.


FireMonkey Resimlerde Pan ve Zoom İşlemleri - AliZairov - 10-01-2017

İyi akşamlar. Paylaşım için teşekkürler Fesih bey. Yakın zamanda kardeş forumda bu olayı sormuştular evap olarak sizin makelnizi yardımcı olması için yanıt verdim.

*Fesih bey aslında konu dışı. Merakımdan soruyorum şu video gibi animasyon yapmak için hangi yazılım kullanıyorsunuz?


Cvp: FireMonkey Resimlerde Pan ve Zoom İşlemleri - Fesih ARSLAN - 11-01-2017

(10-01-2017, Saat: 23:22)AliZairov Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olİyi akşamlar. Paylaşım için teşekkürler Fesih bey. Yakın zamanda kardeş forumda bu olayı sormuştular evap olarak sizin makelnizi yardımcı olması için yanıt verdim.
*Fesih bey aslında konu dışı. Merakımdan soruyorum şu video gibi animasyon yapmak için hangi yazılım kullanıyorsunuz?

Rica ederim, faydalı olur İnşallah.
Hareketsiz görüntüler ve ekran alıntıları için Snagit kullanıyorum.
Hareketli görüntü (gif) oluşturmak için öncelikle telefondan ekran görüntüsünü video olarak kaydediyorum. Bunun için  Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol veya Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol kullanıyorum.
Daha sonra bu video dosyasını AVS Video Editor ile import ederek, istediğim kareleri kırpıyorum (Trim). 
Yine  AVS Video Editor ile Produce işlemine tabi tutarak; export türünü gif (File > Gif) seçiyorum. Görüntü boyunu düzenleyerek, export ediyorum.
Son olarak bir web sunucuya göndererek link paylaşıyorum.


Cvp: FireMonkey Resimlerde Pan ve Zoom İşlemleri - AliZairov - 11-01-2017

(11-01-2017, Saat: 08:36)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlRica ederim, faydalı olur İnşallah.
Hareketsiz görüntüler ve ekran alıntıları için Snagit kullanıyorum.
Hareketli görüntü (gif) oluşturmak için öncelikle telefondan ekran görüntüsünü video olarak kaydediyorum. Bunun için  Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol veya Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol kullanıyorum.
Daha sonra bu video dosyasını AVS Video Editor ile import ederek, istediğim kareleri kırpıyorum (Trim). 
Yine  AVS Video Editor ile Produce işlemine tabi tutarak; export türünü gif (File > Gif) seçiyorum. Görüntü boyunu düzenleyerek, export ediyorum.
Son olarak bir web sunucuya göndererek link paylaşıyorum.

İyi akşamlar. Teşekkürler Fesih bey.


FireMonkey Resimlerde Pan ve Zoom İşlemleri - dnzmobile - 05-03-2017

Yararlı bir paylaşım olmuş. Teşekkürler
Fesih hocam paylaştığınız Image nesnesinin ZOOM olayını bir butona atayabilirmiyiz? yada Formun.Show olayına v.b
Ayrıca bunu Android'te yapabilen bildiğiniz bir component varmı?


Cvp: FireMonkey Resimlerde Pan ve Zoom İşlemleri - quiet1day - 01-11-2017

zoom yaparken zoom işlemini çok az çok az yapıyor galeride sabit image zoom'u biraz daha büyük bir alanı zoomluyor gibime geldi burda bunu biraz daha büyütme imkanımız var mı


Cvp: FireMonkey Resimlerde Pan ve Zoom İşlemleri - Fesih ARSLAN - 02-11-2017

(01-11-2017, Saat: 20:39)Paranoyaq Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olzoom yaparken zoom işlemini çok az çok az yapıyor galeride sabit image zoom'u biraz daha büyük bir alanı zoomluyor gibime geldi burda bunu biraz daha büyütme imkanımız var mı

Merhaba,
EventInfo.Distance bilgisi veya belirleyeceğiniz ek katsayılarla zoom değerini arttırabilirsiniz.  
Bu bilgiyi Linkleri Görebilmeniz İçin Giriş yap veya Üye Olnde kullanmak için sormuşsunuz galiba. 
Bu noktada ek bir tavsiyem olacak; harita işlemleri için coğrafik koordinat sistemine uygun (ölçekli) krokilerin olması ve her zoom seviyesine (harita katmanı) göre de farklı krokilerin yüklenmesi şarttır.


Cvp: FireMonkey Resimlerde Pan ve Zoom İşlemleri - pro_imaj - 02-11-2017

(10-01-2017, Saat: 20:55)barisatalay Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlEllerinize sağlık hocam Smile Vakitsizlikten paylaşamıyorum böyle şeyleri sayenizde herkes yararlanabiliyor.

Senin katkıların çok önemli, ben şahsen senden müthiş makaleler bekliyorum. İlerleyen zamanlarda daha da yoğun olacaksın, söylemedi deme  Smile


FireMonkey Resimlerde Pan ve Zoom İşlemleri - pro_imaj - 15-03-2018

Merhaba;

Bu konuda 10.2.3 versiyonun bir gelişme yok mu yoksa yine Fesih bey'in belirttiği şekilde mi yapılıyor hala. Kurup deneyen var mı acaba.

İyi çalışmalar.