Ekran görüntüsü kalitesi düşük oluyor..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Shou
Üye
Mesajlar: 260
Kayıt: 26 Ağu 2011 02:00

Ekran görüntüsü kalitesi düşük oluyor..

Mesaj gönderen Shou »

Delphi 7 ile ekran görüntüsü alıyorum masa üstüne kaydettiriorum jpg olarak sorunsuz güzel görüntü veriyor sorunsuz olan kod şu bu :

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
Const
{$j+} i : Integer = 0; {$j-}
var
  DCDesk: HDC;
begin
  DCDesk:=GetWindowDC(GetDesktopWindow);
  BitBlt(image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
  ReleaseDC(GetDesktopWindow, DCDesk);
  image1.Picture.SaveToFile('C:\' +inttostr(i)+'.JPG'); // C:'ye kaydeder.
  inc(i);
end;
fakat ben print screen tuşu ile yapıyorum sorun yok ama ekran görüntüsü güzel çıkmıyor soluk çıkıyor kodlar şu nerede hata yapıyorum bakarsanız sevinirim :

Kod: Tümünü seç

procedure TForm1.WMHotkey(var msg: TWMHotkey);
var
DCDesk: HDC;
image1: TImage;
jpg : TJPEGImage;
begin
if CheckBox2.Checked then  begin
If DirectoryExists(ExtractFilePath(Application.ExeName) + '\SS\') Then
if CreateDir(ExtractFilePath(Application.ExeName) + '\SS\') then
begin
end;
if msg.hotkey = 1 then
begin
image1 := TImage.Create(Self);
jpg := TJPEGImage.Create;
try
with image1 do
begin
Width := Screen.Width;
Height := Screen.Height;
end;
DCDesk := GetWindowDC(GetDesktopWindow);
BitBlt(image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DCDesk, 0, 0, SRCCOPY);
ReleaseDC(GetDesktopWindow, DCDesk);
jpg.Assign(image1.Picture.Graphic);
jpg.SaveToFile(ExtractFilePath(Application.ExeName) + '\SS\' + 'GD-SS-' +
FormatDateTime('yy_mm_dd_hh_nn_ss', Now) + '.JPG');
finally
image1.Free;
jpg.Free;
end;
end;
end
else
showmessage('ekran görüntüsü pasif');
end;
ss klasoru oluşturuyor yoksa içine ss leri koyuyor ama görüntü biraz soluk çıkıyor renksiz yani yardımcı olursanız sevinirim şimdiden tşkler.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Ekran görüntüsü kalitesi düşük oluyor..

Mesaj gönderen mkysoft »

ilk kodda büyük ihitmalle resim jpeg formatında kaydedilmiyor. her hangi bir hex editörü ile yada notepad ile resmi açarsanız ilk karakterlerden ne türde olduğunu anlarsanız. image nesnesi normalde zaten jpeg desteklemez. windows içinde dosyanın uzantısının bir önemi yoktur. doyanın ilk başındaki bytelere göre türüne karar verir.
ikinci kodda ise image nesnesini jpeg'e atarak resmi dönüştürüyorsunuz. jpeg üzerinde kalite ayarları olması lazımdı. Kalitesini artırırsanız sorununuz kalmaz.
Cevapla