ekranda belirli alanın görüntüsünü almak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

ekranda belirli alanın görüntüsünü almak

Mesaj gönderen pasa_yasar »

İyi günler;

web browserda açtığım sayfa belirli bir alanın resmini almak istiyorum. daha sonra ise bu alanı başka bir resimle karşılaştırmak istiyorum. site arattım kodları uyguladım fakat tam olarak çalıştıramadım. bu konuda bilgi veya site verirseniz sevinirim.
freett
Üye
Mesajlar: 29
Kayıt: 01 Mar 2004 05:18
Konum: ANTALYA

Mesaj gönderen freett »

Tam olarak anlamadım yapacağını ama bu kod belki işini görür

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  DCDesk: HDC;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); // Görüntüyü Alır
begin
DCDesk:=GetWindowDC(GetDesktopWindow);
BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
//Burda koordiat verebilirsin
ReleaseDC(GetDesktopWindow, DCDesk);
end;

procedure TForm1.Button2Click(Sender: TObject);//Kayıt eder
begin
image1.Picture.SaveToFile('c:\ss.jpg');
end;

end.
talip türkmen
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Mesaj gönderen pasa_yasar »

çektiğimiz resmi pixel pixel nasıl karşılaştırabiliriz.

Kod: Tümünü seç

var
  b1, b2: TBitmap;
  c1, c2: PByte;
  x, y, i,
  BytesPerPixel: Integer; // Counter for different pixels
begin
  b1 := Image1.Picture.Bitmap;
//  image2.Picture.LoadFromFile('C:\Tamam\deneme.bmp');
  b2 := Image2.Picture.Bitmap;
  Assert(b1.PixelFormat = b2.PixelFormat); // they have to be equal
  different := 0;
  try
  for y := 0 to b1.Height - 1 do
  begin
    c1 := b1.Scanline[y];
    c2 := b2.Scanline[y];
    for x := 0 to b1.Width - 1 do
      for i := 0 to BytesPerPixel - 1 do // 1, to 4, dep. on pixelformat
      begin
        Inc(different, Integer(c1^ <> c2^));
        Inc(c1);
        Inc(c2);
           end;
         end;
           except;
           end;
     form1.Caption:=inttostr(different);
forumda böyle bir kod buldum fakat istediğim sonuçları vermedi. pixel pixek renk karşılaştırma komutu nedir veya kodları nelerdir.
Cevapla