TMediaPlayer nesnesinden image yakalama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
TMediaPlayer nesnesinden image yakalama
TMediaPlayer nesnesinde yürütülmekte olan videonun o anki görüntüsünü, image olarak nasıl yakalanır.
Media Player
MediaPlayer e içerden erişilirmi bilmiyorum.
PrintScreen de programlama forumuna uygun bir yanıt değil gibi geldi.
BitBlt, StretchBlt apilerini incelemenizi ve eğer varsa msdn 2003 te, yoksa microsoft un sitesinde araştırmanızı tavsiye ederim.
PrintScreen de programlama forumuna uygun bir yanıt değil gibi geldi.
BitBlt, StretchBlt apilerini incelemenizi ve eğer varsa msdn 2003 te, yoksa microsoft un sitesinde araştırmanızı tavsiye ederim.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
warder dostum bir program yazmanın 10 yolu her zaman vardır, belki daha fazlası da bulunabilir. ben işyerinde o an aklıma gelen en basit bir fikrimi yazdımki bu işlem için de windows apisi kullanılıyo. Dolayısıyla sen de bir api çözümü getirmişsin. Madem karalıyorsun Programlama Forumuna yakışmaz diyorsun buyur yaz kodu
Herşey sevgi, saygı ve hoşgörü ile
Saygılar

Herşey sevgi, saygı ve hoşgörü ile
Saygılar
Sizi üzmeyi planlamamıştım.MicroChip yazdı:warder dostum bir program yazmanın 10 yolu her zaman vardır, belki daha fazlası da bulunabilir. ben işyerinde o an aklıma gelen en basit bir fikrimi yazdımki bu işlem için de windows apisi kullanılıyo. Dolayısıyla sen de bir api çözümü getirmişsin. Madem karalıyorsun Programlama Forumuna yakışmaz diyorsun buyur yaz kodu![]()
Herşey sevgi, saygı ve hoşgörü ile
Saygılar
foruma yeni üye olduğum gibi kimseyi ve kapasitesini tanımıyorum. Sizin öneriniz eleştiriyi hakeden bir içeriğe sahipti. bende hak eden kısmına değindim. Bunun sizinle alakası yok. Yaptığınız işle kişiliğinizi birleştirmeyin lütfen.
Yaptığınız işi beğenmemek kişiliğinizi beğenmemek değildir. işiniz eleştiri almıştır kişiliğiniz değil.
Burada "mp3 nasıl çalınır" diyene "winapı indir" demek eleştirilmelidir.
Diğer taraftan ben C ve Cpp programcısıyım. Soru sahibinin tam istediği gibi olmasada ekranın herhangi bir koordinatının fotoğrafını alıp değerlendiren özel çalışmam var. bu çalışmadan soru sahibinin işine yarayacağını umduğum denenmiş apileri önerdim. Kaynak gösterdiğim msdn veya ms nin sitesinde örnek mevcut. Delphiye çevirmek ona kalmış. Balık tutmak programcıyı geliştirir. printscreen balık satın almak olabilir, tabii benim kod yazmam da. Üstelik bunlar etraflı apiler kavramadan kullanılmaz.
Yinede üzdüğüm için üzgünüm.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
selamlar hocam,bu yöntem vb5 de işe yaramıyordu.. capture yalnız formun görüntüsünü alıyordu, diğer active screen bileşenlerini almıyordu..MicroChip yazdı:Yakalanabilir mi hiç denemedim ama aklıma gelen ilk şey o andaki ekranı veya pencereyi capture ederek (printscreen olayı yani)
zamanında open source bir webcam capture programı bulmuştum.. onunla becerebilmiştim.
bu tarz bi örnek ararsanız, faydalı olabilir.
EK : programı buldum
http://sourceforge.net/projects/avinwebcam/
ben kaynak olarak tv kartını gösterip televizyon görüntüsü almıştım

Merhabalar,
MediaPlayer in display ini form1 in üzerinde belirlediğin bir rectangle in içinde gösteriyorsan;
Yukardaki kod butona bastığın anda mediaPlayer in karesini bmp formatında kaydeder.
MediaPlayer in display ini form1 in üzerinde belirlediğin bir rectangle in içinde gösteriyorsan;
Kod: Tümünü seç
procedure TForm1.ResimKesClick(Sender: TObject);
var
newRect:trect;
begin
newRect.Left :=5;
newRect.Top:=5;
newRect.Right:=250;
newRect.Bottom:=250;
with Image1.Canvas do
begin
CopyMode := cmMergeCopy ;
CopyRect(newRect, form1.Canvas, newRect);
end;
image1.Picture.SaveToFile('c:\test.bmp');
end;
saygılar
Merhabalar,hakkus yazdı: Yukardaki kod butona bastığın anda mediaPlayer in karesini bmp formatında kaydeder.
Yukarıdaki kodla formun istediğim karesini alabiliyorum. Görüntüyü bir panel üzerinde gösteriyorum. Lakin görüntünün gösterildiği kısım siyah çıkıyor. Durdurup, alıp, tekrar çalıştırmayı denedim. Ama olmadı.
Webcam'den capture yapabiliyorum.
Ama benim istediğim daha önce kaydedilmiş, o an yürütülmekte olan bir videodan görüntü yakalamak.
Yukarıdaki kod işe yarayacak gibi ama neden siyah çıkıyor.
Merhabalar,
Önceki mesajda yazdığım kod, eğer mediaPlayer in display i olarak form1 in belli bir yerini kullanırsan işe yarar. Sizdeki sorun display için panel kullanmanızdan kaynaklanıyor.
Bunun için formuna iki buton (PlayBtn, ResimKes) ve bir image (image1) koyup ve aşağıdaki kodu eklersen sorunun çözülür;
Kolay gelsin
Önceki mesajda yazdığım kod, eğer mediaPlayer in display i olarak form1 in belli bir yerini kullanırsan işe yarar. Sizdeki sorun display için panel kullanmanızdan kaynaklanıyor.
Bunun için formuna iki buton (PlayBtn, ResimKes) ve bir image (image1) koyup ve aşağıdaki kodu eklersen sorunun çözülür;
Kod: Tümünü seç
procedure TForm1.PlayBtnClick(Sender: TObject);
var
newRect:trect;
begin
newRect.Left :=5;
newRect.Top:=5;
newRect.Right:=250;
newRect.Bottom:=250;
form1.Canvas.Rectangle(5,250,250,5);
MediaPlayer1.Display:=form1;
MediaPlayer1.DisplayRect:=newRect;
MediaPlayer1.Play;
end;
//
procedure TForm1.ResimKesClick(Sender: TObject);
var
newRect:trect;
begin
newRect.Left :=5;
newRect.Top:=5;
newRect.Right:=250;
newRect.Bottom:=250;
with Image1.Canvas do
begin
CopyMode := cmMergeCopy ;
CopyRect(newRect, form1.Canvas, newRect);
end;
image1.Picture.SaveToFile('c:\test.bmp');
end;
saygılar