Package 'screenshot'

Title: Take Screenshots (Screen Capture) from R Command
Description: Take screenshots from R command and locate an image position.
Authors: Toshikazu Matsumura [aut, cre]
Maintainer: Toshikazu Matsumura <[email protected]>
License: MIT + file LICENSE
Version: 0.9.1
Built: 2025-01-25 02:48:26 UTC
Source: https://github.com/matutosi/screenshot

Help Index


Converts a bitmap image to PNG using

Description

Converts a bitmap image to PNG using

Usage

bitmap2png(path)

Arguments

path

Path to the bitmap image.

Value

The result of the system call.

Examples

## Not run: 
bitmap2png("path/to/image.bmp")

## End(Not run)

Sample data of clipboard bitmap array

Description

Sample data of clipboard bitmap array

Usage

clipboard_sample

Format

raw data of bitmap array with 246292 length

Examples

data(clipboard_sample)

Save clipboard image to temporary BMP file

Description

This function works only on windows. This function saves the image currently in the clipboard to a temporary BMP file.

Usage

clipboard2bitmap()

Value

Path to the temporary BMP file.

Examples

## Not run: 
clipboard2bitmap()

## End(Not run)

Compare values within tow arrays or matrices. Helper function for locate_ndl_in_hay().

Description

Compare values within tow arrays or matrices. Helper function for locate_ndl_in_hay().

Usage

compare_table(ndl_mt, hay_mt)

Arguments

ndl_mt, hay_mt

A matrix.

Value

A tibble.

Examples

val <- seq(from = 0, to = 1, by = 0.1)
mt_1 <- matrix(sample(val,  20, replace = TRUE))
mt_2 <- matrix(sample(val, 100, replace = TRUE))
compare_table(mt_1, mt_2)

Helper function for compare_table().

Description

Helper function for compare_table().

Usage

count_val_freq(mt, colname)

Arguments

mt

A numeric matrix or array.

colname

A string of name for count.

Value

    A dataframe.

Examples

mt <- sample(1:10, 30, replace = TRUE)
count_val_freq(mt, "freq")

Create a BMP header

Description

Create a BMP header

Usage

create_header(clipboard)

Arguments

clipboard

A raw vector of the clipboard contents.

Value

A raw vector of the BMP header.

Examples

data(clipboard_sample)
create_header(clipboard_sample)

Get display corner of screen

Description

This function returns the coordinates of the specified corner of the display. This function works only on windows.

Usage

display_corner(corner = "bottom_left", width = 600, height = 600)

Arguments

corner

A string to specify a corner of the display. "top_left", "top_right", "bottom_left", or "bottom_right".

width, height

A integer to specify width or height of the corner.

Value

A numeric vector of length 4 representing the coordinates of the specified corner.

Examples

## Not run: 
display_corner("top_left", 800, 800)

## End(Not run)

Get the size of the display.

Description

This function works only on windows.

Usage

display_size()

Value

A list with two elements, width and height, which are the width and height of the display.

Examples

## Not run: 
display_size()

## End(Not run)

Retrieves the image from the clipboard

Description

This function works only on windows.

Usage

get_clipboard_image()

Value

A raw vector containing the image data.

Examples

## Not run: 
get_clipboard_image()

## End(Not run)

data(clipboard_sample)
head(clipboard_sample, 100)
header <- create_header(clipboard_sample)
image_data <- c(header, clipboard_sample)
path <- fs::path_temp(ext = "bmp")
save_bmp(image_data, path)
 # shell.exec(path)
fs::file_delete(path)

Get OS name

Description

Get OS name

Usage

get_os()

Value

A string of OS name

Examples

get_os()

Cut off a part of image from a whole image.

Description

Cut off a part of image from a whole image.

Usage

hay2needle(haystack_image, pos_x, pos_y, w = 50, h = 20)

Arguments

haystack_image

An image of cimg.

pos_x, pos_y

A numeric to indicate the top left corner of cutting image. When NULL, position will be randomly sampled.

w, h

A numeric for width or height of the cutting image.

Value

          An image of cimg object.

Examples

haystack_image <- imager::load.example("parrots")
needle_image <- hay2needle(haystack_image, 200, 250, 100, 50)
layout(c(1:2))
plot(haystack_image)
plot(needle_image)

Convert hexadecimal string to little-endian

Description

Convert hexadecimal string to little-endian

Usage

hex2little_endian(x)

Arguments

x

Hexadecimal string

Value

Little-endian hexadecimal string

Examples

hex2little_endian("01234567")
hex2little_endian("012345")

Convert cimg class into grayscale xy matrix. Helper function for locate_image(). Use grayscale to Speed up and to simplify code.

Description

Convert cimg class into grayscale xy matrix. Helper function for locate_image(). Use grayscale to Speed up and to simplify code.

Usage

image2gray_matrix(img)

Arguments

img

A cimg object.

Value

 An xy dimensional matrix.

Convert array index into xy location in matrix. Helper function for locate_ndl_in_hay().

Description

Convert array index into xy location in matrix. Helper function for locate_ndl_in_hay().

Usage

index2xy(index, nrow)

Arguments

index, nrow

A numeric.

Value

       A numeric pair of xy location.

Examples

nrow <- 4
matrix(1:12, nrow = nrow)
purrr::map(1:12, index2xy, nrow = nrow)

Install command line screenshot for Windows.

Description

Codes are from URL shown below. https://superuser.com/questions/75614/take-a-screen-shot-from-command-line-in-windows#answer-1751844 On Mac screencapture is usually available. On Linux GNOME desktop use gnome-screenshot. If not installed, run ⁠sudo apt install gnome-screenshot⁠.

Usage

install_screenshot(bin_dir = "")

Arguments

bin_dir

A string of directory to be installed.

Value

   A string of installed directory.

Examples

if(interactive()){

# need only on Win
if(get_os() == "win"){
  bin_dir <- fs::path_package("screenshot")
  # if you want to install another directory
  #   bin_dir <- "SET_YOUR DIRECTORY"
  install_screenshot(bin_dir)
}

}

Helper function for locate_ndl_in_hay().

Description

Helper function for locate_ndl_in_hay().

Usage

is_all_same(ndl_mt, hay_mt, base_xy)

Arguments

ndl_mt, hay_mt

A matrix

base_xy

A numeric pair of xy location.

Value

    A logical.

Locate needle image position on a screenshot image.

Description

Locate needle image position on a screenshot image.

Usage

locate_image(
  needle_image,
  center = TRUE,
  exact = TRUE,
  timeout = 5,
  corner = NULL,
  width = 600,
  height = 300,
  bin_dir = ""
)

Arguments

needle_image

A string of image file path or a cimg class object of imager library.

center

A logical. TRUE returns center position of needle_image.

exact

A logical. Check matching exactly or not.

timeout

A numeric for timeout seconds.

corner

A string to specify a corner of the display. "top_left", "top_right", "bottom_left", or "bottom_right".

width, height

A integer to specify width or height of the corner.

bin_dir

A string for directory name of screenshot.exe on Win.

Value

   A numeric pair of xy location.

Examples

## Not run: 
sc <- screenshot()
if(sc != ""){
  sc_image <- imager::load.image(sc)
  w <- 100
  h <- 80
  pos_x <- 1
  pos_y <- imager::height(sc_image) - h
  needle <- hay2needle(sc_image, pos_x, pos_y, w, h)
  (locate_image(needle)) # center location
  pos <- locate_image(needle, center = FALSE)
  found <- hay2needle(sc_image, pos[1], pos[2], w, h)
  layout(c(1:3))
  plot(sc_image)
  plot(needle)
  plot(found)
  # usse `coner` to limit searching field
  # `coner` can be used in Windows
  pos <- locate_image(needle, corner = "bottom_left", center = FALSE)
}

## End(Not run)

Locate needle image matrix position in a haystack_image matrix. Helper function for locate_image().

Description

Locate needle image matrix position in a haystack_image matrix. Helper function for locate_image().

Usage

locate_ndl_in_hay(ndl_mt, hay_mt, exact = TRUE, timeout = 5)

Arguments

ndl_mt, hay_mt

A matrix

exact

A logical. Check matching exactly or not.

timeout

A numeric for timeout seconds.

Value

    A numeric pair of xy location for needle image.

Examples

haystack_image <- imager::load.example("parrots")
w <- 100
h <- 50
needle_image <- hay2needle(haystack_image, 129, 257, w, h)
hay_mt <- image2gray_matrix(haystack_image)
ndl_mt <- image2gray_matrix(needle_image)
(pos <- locate_ndl_in_hay(ndl_mt, hay_mt))

found <- hay2needle(haystack_image, pos[1], pos[2], w, h)
layout(c(1:3))
plot(haystack_image)
plot(needle_image)
plot(found)

Save an image as a BMP file

Description

Save an image as a BMP file

Usage

save_bmp(image_data, path)

Arguments

image_data

A raster image data object, such as an array of pixel values or an R object representing an image.

path

The path to the file to be saved.

Value

Saves the image as a BMP file at the specified path.

Examples

## Not run: 
# Create an image data object
image_data <- matrix(rnorm(100), ncol = 10)
# Save the image as a BMP file
save_bmp(image_data, "image.bmp")

## End(Not run)

Saves an image from the clipboard to a file

Description

This function works only on windows.

Usage

save_clipboard_image(path = "")

Arguments

path

Optional path to save the image to. If not specified, a temporary file will be created.

Value

The path to the saved image file.

Examples

## Not run: 
# Save the image from the clipboard to a file
save_clipboard_image("clipboard_image.png")

## End(Not run)

Take a screenshot.

Description

Need to install screenshot.exe on Win by install_screenshot().

Usage

screenshot(bin_dir = "", file = "")

Arguments

bin_dir

A string for directory name of screenshot.exe on Win.

file

A string for file name of screenshot.

Value

    A file name of screenshot. When "", screenshot will be saved in a tempral directory.

See Also

   install_screenshot()

Examples

if(interactive()){

sc <- screenshot()
if(sc != ""){
  sc_image <- imager::load.image(sc)
  plot(sc_image)
}

}

Find screenshot exec file.

Description

Find screenshot exec file.

Usage

screenshot_exists(bin_dir = "")

Arguments

bin_dir

A string for directory name screenshot.exe exec file. No need on Mac and Linux.

Value

A logical.

Examples

screenshot_exists()

Get xy position of a value in a matrix Helper function for locate_ndl_in_hay().

Description

Get xy position of a value in a matrix Helper function for locate_ndl_in_hay().

Usage

xy_pos(mt, val)

Arguments

mt

A matrix

val

A matrix

Value

A numeric pairs of xy location.

Examples

nrow <- 4
mt <- matrix(1:12, nrow = nrow)
xy_pos(mt, 5)