A simple C++ library for converting png and jpeg images to SSTV compatible sizes along with overlaying a callsign and other data.
 
 
Go to file
Joshua Jerred f921e4a704 CMake update 2024-06-08 13:22:28 -05:00
example Additional text overlay 2023-03-15 20:48:50 -06:00
include Additional text overlay 2023-03-15 20:48:50 -06:00
src Reverse order of added text 2023-03-15 21:03:27 -06:00
.gitignore Initial Commit 2023-03-12 20:23:47 -06:00
.timetracker Reverse order of added text 2023-03-15 21:03:27 -06:00
CMakeLists.txt CMake update 2024-06-08 13:22:28 -05:00
README.md Update README.md 2023-03-13 16:54:19 -06:00

README.md

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/W
  • Robot16 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