kopia lustrzana https://github.com/joshua-jerred/SSTV-Image-Tools
2.2 KiB
2.2 KiB
SSTV Image Tools C++ Library
Currently in development but it's functional. Will be used with the MWAV library to create SSTV images.
A simple library for manipulating images into common SSTV image formats using Magick++.
Examples
Convert an image to the size specified by the SSTV mode and add a call sign
SstvImage image(SstvImage::Mode::ROBOT_36_COLOR, "test1.png");
image.AddCallSign("N0CALL");
image.Write("converted_test1.png");
test1.png | converted_test1.png |
---|---|
Get RGB values of specific pixels
SstvImage image(SstvImage::Mode::ROBOT_36_COLOR, "example/test1.png");
/*
From this point forward image is the size of the specified mode.
For example, Robot36 is 320x256.
*/
image.AddCallSign("N0CALL");
SstvImage::Pixel pixel;
pixel = image.GetPixel(128, 91, pixel); // Get Pixel returns false if the pixel is out of bounds
std::cout << (int)pixel.r << " " << (int)pixel.g << " " << (int)pixel.b << std::endl;
// This will output "0 191 0"
Current Functionality
Basic Features:
- Overlay call sign and
message text - Convert the image to the proper color space
- Get the values for individual pixels
Add Data to the image
Supported SSTV Image Formats:
- Robot24
- Robot36
- Robot72
Robot8 B/WRobot16 B/W
Tested with jpeg, and png images, support for other Magick++ supported formats has not been tested.
Magick++ (7.1) with libjpeg62-dev
, libpng-dev
, libfreetype6-dev
is required.
Example Image Sources:
Image File | Source | License |
---|---|---|
example/test1.png |
Wikipedia | GNU 1.2 |
example/test2.png |
Wikipedia | GNU 1.2 |
example/test3.jpg |
Wikipedia | Public Domain |