ekran görüntüsünün 5 dk. ara ile jpg resmini çekmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
a_self_lion
Üye
Mesajlar: 93
Kayıt: 01 Eki 2008 07:04

ekran görüntüsünün 5 dk. ara ile jpg resmini çekmek

Mesaj gönderen a_self_lion »

Selam arkadaşlar;

bir proje yapmak istiyorum.;
Ekran görüntüsünün 5 dk. ,10 dk. , veya bizim belirleyeceğimiz bir aralıkta ekranın görüntüsünü jpg veya her hangi bir formatta belirlediğimiz bir klasöre çekip kaydetmeye yarayan kodlar veya bir bileşen varmı?

Bu konu ile ilgili çalışılmış örnek veya sizin fikirleriniz ne olabilir bu konuda.

Teşekkürler;
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: ekran görüntüsünün 5 dk. ara ile jpg resmini çekmek

Mesaj gönderen khanco »

forumda bmp olarak ekran görüntüsünü alan kodlar mevcut.
bmp dosyayı jpg çevirme kodlarıda mevcut.
bir resmi kaydetme kodlarıda mevcut.

sana düşen bu kodları bulmak ve timer ile bunları sırası ile çalıştırmak. interval değişken olsun dersen 1 adette edit koyabilirsin interval için.
a_self_lion
Üye
Mesajlar: 93
Kayıt: 01 Eki 2008 07:04

Re: ekran görüntüsünün 5 dk. ara ile jpg resmini çekmek

Mesaj gönderen a_self_lion »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  DC: HDC;
  Canvas: TCanvas;
  MyBitmap: TBitmap;
begin
  Canvas := TCanvas.Create;
  MyBitmap := TBitmap.Create;
  DC := GetDC(0);

  try
    Canvas.Handle := DC;
    with Screen do
    begin
      { detect the actual height and with of the screen }
      MyBitmap.Width := Width;
      MyBitmap.Height := Height;

      { copy the screen content to the bitmap }
      MyBitmap.Canvas.CopyRect(Rect(0, 0, Width, Height), Canvas,
                               Rect(0, 0, Width, Height));
      { stream the bitmap to disk } 
      MyBitmap.SaveToFile('c:\screen.bmp');
    end; 

  finally 
    { free memory }
    ReleaseDC(0, DC);
    MyBitmap.Free;
    Canvas.Free
  end;


button2.Click;


end;

burda resmimi bmp olarak kaydediyor fakat 3.00mb olarak kaydediyor


Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
//jpg dönüştürme
var
MyJPEG : TJPEGImage;
MyBMP : TBitmap;
begin
MyBMP := TBitmap.Create;
with MyBMP do
try
LoadFromFile('c:\windows\swinz\screen.bmp');
MyJPEG := TJPEGImage.Create;
with MyJPEG do begin
Assign(MyBMP);
SaveToFile('c:\screen.JPEG');
Free;
end;
finally
Free;
end;

end;


burda da jpeg olarak dönüştürüyorum.



şimdi burda merak ettiğim

1-screen.bmp 3.00mb oluyor çok yüksek ben istiyorum daha küçük olsun



2- jpeg olarak direk küçük bir boyuttta kaydetme şansımız yok mu.

3- yoksa jpeg olarak dönüştürürken bu 3.00 mb olanı 197kb olarak küçültüyor. bunuda daha küçük şekle gelmesini istiyorum mesela 3 kb gibi 12 kb gibi küçük yer kaplmaması için. Bunun için yapmam gerekenler ne olabilir sizce.



Teşekkürler.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: ekran görüntüsünün 5 dk. ara ile jpg resmini çekmek

Mesaj gönderen Hakan Can »

TJPEGImage'in CompressionQuality property'si var. 1 ila 100 arası değer alıyor. Bunu ne kadar küçük tutarsan o kadar size küçülüyor. Tabi resmin kalitesiyle birlikte.

Kolay gelsin.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: ekran görüntüsünün 5 dk. ara ile jpg resmini çekmek

Mesaj gönderen ikutluay »

sorundan anlıyorumki grafik formatları ile aran zayıf.

1. bir resim BMP formatında ise dosya boyutu otomatikman resmin boyutları ile renk derinliğine bağlı olarak belirlenir. örneğin iti tane 500x500 BMP içerikleri ne olursa olsun renk derinliğide aynı ise (mesela 24bit) hep aynı boyuttadır. kısaca BMP formatında 3 mb oluyor resimler deme şansın yok.

2. JPG ise sıkıştırmalı bir algoritmadı. kendi içinde zip gibi bir formatla resmi sıkıştırır ama aynı zamanda kaliteden farkettirir. jpg bir resim yeniden sıkıştırılırsa kalite dahada bozulur. jpg için tecrübeme göre %60 kalitesinin altında resim iyice bozuluyor.

kaldıki 1 tb hdd kullanıyorum resim 30 kb olsa ne olur 12 kb olsa ne olur. ve bahsettiğin ekran resmi ise bu boyutta resimlerle kalite yakalaman mkansız. sana tavsiyem grafik formatlarını iyi araştır.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
a_self_lion
Üye
Mesajlar: 93
Kayıt: 01 Eki 2008 07:04

Re: ekran görüntüsünün 5 dk. ara ile jpg resmini çekmek

Mesaj gönderen a_self_lion »

BMP KALIRSA
1 sniye 12 mb
60 SN 1 DK. 12 MB * 60 720 MB 1 DK.
60 DK. 1 SSAAT 720 MB *60 DK. 43200 MB 1 SAAT
24 SAAT 1 GÜN 43200MB * 24 SAAT 1036800 MB 1 GÜN BUDA 1012.5 TB YAPIYOR


JPEG E ÇEVİRİRSEK
1 SN. 200 KB YAPIYOR
60 SN 1 DK. 1 DK DA 12000 KB YANİ 12 MB YAPIYOR 12 MB 1 DK.
60 DK. 1 SSAAT 60 DK 1 SAAT 12 *60 720 MB
24 SAAT 1 GÜN 1 GÜN 24 SAAT 720 * 24 17280 MB BUDA 16.875 GB YAPAR

BURDA 16 GB BİLE 1 GÜNDE SİZİN İÇİN FAZLA DEĞİLSE BİLMEM BENİM İÇİN ÇOOOK FAZLA BİRŞEY
Cevapla