/// <summary> /// マウスフックの削除 /// </summary> /// <param name="_nCode">現在のフックプロシージャに渡されたnCode</param> /// <param name="_wParam">現在のフックプロシージャに渡されたwParam</param> /// <param name="_lParam">現在のフックプロシージャに渡されたlParam</param> /// <returns>フックチェーン内の次のフックプロシージャの戻り値</returns> private IntPtr MouseHookProc(int _nCode, IntPtr _wParam, IntPtr _lParam) { if (_nCode >= 0 && !m_bClose) { MouseHook.MouseHookStruct mouseHookStruct = (MouseHook.MouseHookStruct)Marshal.PtrToStructure(_lParam, typeof(MouseHook.MouseHookStruct)); if (mouseHookStruct != null) { String strText = "Scale Capture" + " x = " + mouseHookStruct.pt.x.ToString("d") + " : y = " + mouseHookStruct.pt.y.ToString("d"); lblTitle.Text = strText; float fScale = (float)(sliderScale.Value * 0.1); Bitmap bitmap = new Bitmap(200, 200); Graphics graphics = Graphics.FromImage(bitmap); graphics.CopyFromScreen(mouseHookStruct.pt.x - 100, mouseHookStruct.pt.y - 100, 0, 0, bitmap.Size); graphics.Dispose(); m_scaleImgProc.GoImgProc(bitmap, fScale); pictureBox.Image = m_scaleImgProc.bitmap; pictureBox.Refresh(); } } return(MouseHook.CallNextHookEx(m_hHook, _nCode, _wParam, _lParam)); }
/// <summary> /// 画像処理実行用のタスク /// </summary> /// /// <param name="_bitmap">ビットマップ</param> /// <returns>画像処理の実行結果 成功/失敗</returns> private async Task <bool> TaskWorkImageProcessing(Bitmap _bitmap) { m_tokenSource = new CancellationTokenSource(); CancellationToken token = m_tokenSource.Token; float fScale = (float)(sliderScale.Value * 0.1); bool bRst = await Task.Run(() => m_scaleImgProc.GoImgProc(_bitmap, fScale, token, this)); return(bRst); }
/// <summary> /// 画像処理実行用のタスク /// </summary> /// /// <param name="_bitmap">ビットマップイメージ</param> /// <returns>画像処理の実行結果 成功/失敗</returns> private async Task <bool> TaskWorkImageProcessing(BitmapImage _bitmap) { m_tokenSource = new CancellationTokenSource(); CancellationToken token = m_tokenSource.Token; float fScale = (float)(sliderScale.Value * 0.1); PresentationSource source = PresentationSource.FromVisual(this); double dDpiX = 96; double dDpiY = 96; if (source != null) { dDpiX = 96.0 * source.CompositionTarget.TransformToDevice.M11; dDpiY = 96.0 * source.CompositionTarget.TransformToDevice.M22; } bool bRst = await Task.Run(() => m_scaleImgProc.GoImgProc(_bitmap, fScale, token, this, dDpiX, dDpiY)); return(bRst); }