喫茶XRAYトップページ

[スレッド全体
]

[13597] Re:ChatGPTやべえ返信 削除
2023/3/15 (水) 11:56:17 Mr.XRAY
ChatGPT とどういう関係があるのか分かりませんが・・・


  if LBitmapA.Equals(LBitmapB) then begin
    // 略
  end;


//=============================================================================
//  ウィンドウのクライアント領域のキャプチャ
//  uses に Winapi.WinSpool; が必要
//=============================================================================
procedure TForm1.Button2Click(Sender: TObject);
var
  LhWnd   : HWND;
  LRect   : TRect;
  LBitmap : TBitmap;
begin
  LhWnd := Handle;
  Winapi.Windows.GetClientRect(LhWnd, LRect);

  LBitmap := TBitmap.Create;
  try
    // 以下の場合,自分自身のキャプチャなのでこれと同じ
//    LBitmap := Form1.GetFormImage;
//    LBitmap.SaveToFile('111.bmp');

    LBitmap.SetSize(LRect.Width, LRect.Height);

    LBitmap.Canvas.Lock;
    PrintWindow(LhWnd, LBitmap.Canvas.Handle, 1);
    LBitmap.Canvas.Unlock;

    LBitmap.SaveToFile('000.bmp');
  finally
    FreeAndNil(LBitmap);
  end;
end;


いろいろなコーディングがあるということです.
Printwindow 関数は,隠れたウィンドウもキャプチャします.
キャプチャ例てす.



[13598] ウィンドウのクライアント領域のキャプチャ返信 削除
2023/3/15 (水) 18:18:46 Mr.XRAY
>   if LBitmapA.Equals(LBitmapB) then begin
>     // 略
>   end;


TBitmap.Equals 関数の内部の処理コードは,miya さんが提示されたコードと同じです.

>   Winapi.Windows.GetClientRect(LhWnd, LRect);

は,Winapi,Windows がないとコンパイルエラーになります.

> //    LBitmap := Form1.GetFormImage;

GetFromImage の内部処理は,miya さんが提示されたコードとほとんど同じです.
PrintWindow 関数もそうかも知れません.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82