Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Ekran görüntüsü alırken alt kısmın gözükmemesi.
#1
Merhaba. Her zaman kullandığım ekran almak için kaynak kodunda garip bir sorunla karşı karşıya kaldım. Grafik ile ilgili kodlara fazla hakim olmadığım için sormak istedim.

Programımın ekran görüntüsünü almak için bu kodu kullanıyorum.


procedure ScreenShot(activeWindow: bool; destBitmap: TBitmap);
var
 w, h: integer;
 DC: HDC;
 hWin: Cardinal;
 r: TRect;
begin
 if activeWindow then
 begin
   hWin := GetForegroundWindow;
   DC := GetWindowDC(hWin);
   GetWindowRect(hWin, r);
   w := r.Right - r.Left;
   h := r.Bottom - r.Top;
 end
 else
 begin
   hWin := GetDesktopWindow;
   DC := GetDC(hWin);
   w := GetDeviceCaps(DC, HORZRES);
   h := GetDeviceCaps(DC, VERTRES);
 end;

 try
   destBitmap.Width := w;
   destBitmap.Height := h;
   BitBlt(destBitmap.Canvas.Handle, 0, 0, destBitmap.Width, destBitmap.Height,
     DC, 0, 0, SRCCOPY);
 finally
   ReleaseDC(hWin, DC);
 end;
end;

procedure TMForm.BarButtons0Click(Sender: TObject);
var
 b: TBitmap;

 PNG: TPNGObject;
 openDialog: tsavedialog;
begin
 b := TBitmap.Create;
 openDialog := tsavedialog.Create(nil);
 PNG := TPNGObject.Create;
 try
   ScreenShot(True, b);
   PNG.Assign(b);
   PNG.CompressionLevel := 0;
   openDialog.Filter := '';
   openDialog.DefaultExt := 'png';
   openDialog.FileName := 
     FormatDateTime('yyyy"-"mm"-"dd"-"hh"-"mm"-"ss', Now);
   if not openDialog.Execute() then
     exit;

   PNG.SaveToFile(openDialog.FileName);
 finally
   b.FreeImage;
   FreeAndNil(b);
   PNG.Free;
   openDialog.Free;
 end
end;

Programımın alt kısmında aslında butonlar vb. objeler var ama malasef bu şekilde boş gösteriyor.

D2zRl4.png

Bu sorun neyden kaynaklıdır nasıl aşabilirim. Şimdiden teşekkür ederim.
Cevapla
#2
Alt kısımda alınmayan yer Windows Görev Çubuğunun yüksekliği kadar mı ?
Cevapla
#3
(08-07-2020, Saat: 22:20)ysfckr Adlı Kullanıcıdan Alıntı: Alt kısımda alınmayan yer Windows Görev Çubuğunun yüksekliği kadar mı ?

Hayır değil.
Cevapla
#4
Bitmapi PNG ye dönüştürmeye çalışıyorsun. Sorun burada olabilir mi? JPEG ile dener misin? Bir de compresssion uyguluyorsun. Eğer bir resime ya da nesneye compresssion uyguluyorsan bunu decompress etmen gerekir diye düşünüyorum. Tam emin değilim ama olabileceğini düşünüyorum.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  PasLibVlc siyah ekran olması Atomkarınca 5 608 08-03-2021, Saat: 20:00
Son Yorum: Atomkarınca
  Tam ekran sorunu Yeliz 4 2.583 03-02-2019, Saat: 01:18
Son Yorum: Yeliz



Konuyu Okuyanlar: 1 Ziyaretçi