MCPcopy Create free account
hub / github.com/SeleniumHQ/selenium / CropImage

Method CropImage

cpp/iedriver/CommandHandlers/ScreenshotCommandHandler.cpp:257–296  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

255}
256
257void ScreenshotCommandHandler::CropImage(HWND content_window_handle,
258 LocationInfo element_location) {
259 RECT viewport_rect;
260 ::GetWindowRect(content_window_handle, &viewport_rect);
261 ::OffsetRect(&viewport_rect,
262 -1 * viewport_rect.left,
263 -1 * viewport_rect.top);
264
265 POINT element_rect_origin;
266 element_rect_origin.x = element_location.x;
267 element_rect_origin.y = element_location.y;
268
269 RECT element_rect = { element_rect_origin.x,
270 element_rect_origin.y,
271 element_rect_origin.x + element_location.width,
272 element_rect_origin.y + element_location.height };
273
274 RECT screenshot_rect;
275 ::IntersectRect(&screenshot_rect, &viewport_rect, &element_rect);
276
277 long width = screenshot_rect.right - screenshot_rect.left;
278 long height = screenshot_rect.bottom - screenshot_rect.top;
279
280 RECT destination_rect = { 0, 0, width, height };
281
282 CImage* image = new CImage();
283 image->Create(width, height, 32);
284 HDC device_context = image->GetDC();
285 this->image_->Draw(device_context, destination_rect, screenshot_rect);
286 image->ReleaseDC();
287
288 this->ClearImage();
289 this->image_ = new CImage();
290 this->image_->Create(width, height, 32);
291 HDC dc = this->image_->GetDC();
292 image->BitBlt(dc, 0, 0);
293 this->image_->ReleaseDC();
294 image->Destroy();
295 delete image;
296}
297
298} // namespace webdriver

Callers 1

ExecuteInternalMethod · 0.80

Calls 2

ClearImageMethod · 0.95
CreateMethod · 0.45

Tested by

no test coverage detected