Resme tarama efekti vermek?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Raskolnikov
Üye
Mesajlar: 37
Kayıt: 15 Tem 2010 10:43

Resme tarama efekti vermek?

Mesaj gönderen Raskolnikov »

Merhabalar,

arkadaşlar ben TIMAGE nesnesinde bulunan resim üzerinde butona her bastığımda önce yukardan aşağıya sonra soldan sağa bir "çizginin" yavaşça yürümesini istiyorum yani resim tarama efekti gibi birşey bunu nasıl yapabilirim?Zor olurmu acaba?

iyi çalışmalar.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Resme tarama efekti vermek?

Mesaj gönderen unicorn64 »

resmin ebatına göre hız sıkıntısı olabilir belki ama şöyle bir yöntem aklıma geldi,

resmi satır sütun matriksi olarak düşünüp satır yada sütun üzerinde gezinilebilir..

resmi 100x100 düşünelim, yatayı sabitleyip [1,1],[1,2]...[1,100]. pixellerdeki renkleri bir diziye alırsın ve buralara siyah renk basarsın, sonra mesela 5 er adımlı gidelim diziye aldığımız renkleri geri yerine basalım ve [6,1],[6,2],...[6,100] için aynı işlemi uygulayalım...

mantık bu şekilde olabilir bence, tabi 1px kalınlık görüntüye net yansımayabilir, 5px genişliğinde yapabilirsin bu işlemi mesela.. ama yavaş olur sanırım...

yada daha güzel bir yöntem aklıma geldi, diziye aldıktan sonra teker teker pixelleri siyaha boyamak yerine moveto ve lineto ile yatay yada dikey çizgi çizersin...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Resme tarama efekti vermek?

Mesaj gönderen qamyoncu »

TImage nesnesinin üstüne onunla aynı boyutlarda bir TPaintBox koyup çizim işlemlerini onun üzerinde yaptırabilirsin.

Kod: Tümünü seç

paintbox1.canvas.pen.width:=3;
Paintbox1.canvas.moveto(0,0);
paintbox1.canvas.lineto(0,100);
sleep(10);
paintbox1.refresh;
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Resme tarama efekti vermek?

Mesaj gönderen Battosai »

Bir panel içine TImage atın align özelliğini client yaptıktan sonra bir adette label koyun aynı panele. Label'ın genişliğini panel ile aynı yapın yüksekliğini de istediğiniz çizgi kalınlğına göre ayarlayın...dha sonra bir timer nesnesinin içine aşağıdaki gibi bir kod yazarak işinizi görebilirsiniz tabi daha çeşitli yolları vardır...Birde label'ın renginide ayarlamayı unutmayın....tarama efekti hızını timer1.interval değerini değiştirerek ayarlayabilirsin..kodlar denenmedi gelişi güzel fikir vermek amaçlı yazıldı....

Kod: Tümünü seç

....
label1.top:=label1.top+10;
if label1.top>=Image1.height then
Label1.top:=0; //başa dön
...
Cevapla