rpi_fb_capture v0.2.1 RpiFbCapture View Source
Capture the Raspberry Pi's frame buffer
Link to this section Summary
Functions
Capture the screen in the specified format
Returns a specification to start this module under a supervisor
Helper method for saving a screen capture to a file
Adjust the value that pixels are on for monochromatic conversion
Start up the capture process
Stop the capture process
Link to this section Types
format()
View Source
format() :: :ppm | :rgb24 | :rgb565 | :mono | :mono_column_scan
format() :: :ppm | :rgb24 | :rgb565 | :mono | :mono_column_scan
option()
View Source
option() ::
{:width, non_neg_integer()}
| {:height, non_neg_integer()}
| {:display, non_neg_integer()}
option() :: {:width, non_neg_integer()} | {:height, non_neg_integer()} | {:display, non_neg_integer()}
Link to this section Functions
capture(server, format)
View Source
capture(GenServer.server(), format()) ::
{:ok, RpiFbCapture.Capture.t()} | {:error, atom()}
capture(GenServer.server(), format()) :: {:ok, RpiFbCapture.Capture.t()} | {:error, atom()}
Capture the screen in the specified format.
Formats include:
:ppm
- PPM-formatted data:rgb24
- Raw 24-bit RGB data 8-bits R, G, then B:rgb565
- Raw 16-bit data 5-bits R, 6-bits G, 5-bits B:mono
- Raw 1-bpp data:mono_column_scan
- Raw 1-bpp data, but scanned down columns
child_spec(init_arg) View Source
Returns a specification to start this module under a supervisor.
See Supervisor
.
save(server, path, format \\ :ppm)
View Source
save(GenServer.server(), Path.t(), format()) :: :ok | {:error, atom()}
save(GenServer.server(), Path.t(), format()) :: :ok | {:error, atom()}
Helper method for saving a screen capture to a file
Example:
iex> {:ok, cap} = RpiFbCapture.start_link()
iex> RpiRbCapture(cap, "/tmp/capture.ppm")
:ok
set_mono_threshold(server, threshold)
View Source
set_mono_threshold(GenServer.server(), byte()) :: :ok | {:error, atom()}
set_mono_threshold(GenServer.server(), byte()) :: :ok | {:error, atom()}
Adjust the value that pixels are on for monochromatic conversion.
The threshold should be 8-bits. The capture buffer is rgb565, so the threshold will be reduced to 5 or 6 bits for the actual comparisons.
start_link(args \\ []) View Source
Start up the capture process
NOTE: The Raspberry Pi capture hardware has limitations on the window size. In general, capturing the whole display is fine. Keeping the width as a multiple of 16 appears to be good.
Options:
:width
- the width of the capture window (0 for the display width):height
- the height of the capture window (0 for the display width):display
- which display to capture (defaults to 0)
stop(server)
View Source
stop(GenServer.server()) :: :ok
stop(GenServer.server()) :: :ok
Stop the capture process