Loading...
Searching...
No Matches
openshot::ImageWriter Class Reference

This class uses the ImageMagick library to write image files (including animated GIFs). More...

`#include <ImageWriter.h>`

Inheritance diagram for openshot::ImageWriter:

## Public Member Functions

void | Close ()
| Close the writer and encode/output final image to the disk. This is a requirement of ImageMagick, which writes all frames of a multi-frame image at one time.
int | GetCacheSize ()
| Get the cache size.
| ImageWriter (std::string path)
| Constructor for ImageWriter. Throws one of the following exceptions.
bool | IsOpen ()
| Determine if writer is open or closed.
void | Open ()
| Open writer.
void | SetCacheSize (int new_size)
| Set the cache size (number of frames to queue before writing).
void | SetVideoOptions (std::string format, Fraction fps, int width, int height, int quality, int loops, bool combine)
| Set the video export options.
void | WriteFrame (ReaderBase *reader, int64_t start, int64_t length)
| Write a block of frames from a reader.
void | WriteFrame (std::shared_ptr< Frame > frame)
| Add a frame to the stack waiting to be encoded.
Public Member Functions inherited from openshot::WriterBase
void | CopyReaderInfo (openshot::ReaderBase *reader)
| This method copy's the info struct of a reader, and sets the writer with the same info.
void | DisplayInfo (std::ostream *out=&std::cout)
| Display file information in the standard output stream (stdout).
std::string | Json () const
| Generate JSON string of this object.
Json::Value | JsonValue () const
| Generate Json::Value for this object.
void | SetJson (const std::string value)
| Load JSON string into this object.
void | SetJsonValue (const Json::Value root)
| Load Json::Value into this object.
virtual void | WriteFrame (std::shared_ptr< openshot::Frame > frame)=0
| This method is required for all derived classes of WriterBase. Write a Frame to the video file.
| WriterBase ()
| Constructor for WriterBase class, many things are initialized here.
virtual | ~WriterBase ()=default

## Additional Inherited Members

Public Attributes inherited from openshot::WriterBase
WriterInfo | info
| Information about the current media file.

## Detailed Description

This class uses the ImageMagick library to write image files (including animated GIFs).

All image formats supported by ImageMagick are supported by this class.

// Create a reader for a video
FFmpegReader r("MyAwesomeVideo.webm");
r.Open(); // Open the reader
// Create a writer (which will create an animated GIF file)
ImageWriter w("/home/jonathan/NewAnimation.gif");
// Set the image output settings (format, fps, width, height, quality, loops, combine)
w.SetVideoOptions("GIF", r.info.fps, r.info.width, r.info.height, 70, 1, true);
// Open the writer
w.Open();
// Write the 1st 30 frames from the reader
w.WriteFrame(&r, 1, 30);
// Close the reader & writer
w.Close();
r.Close();
openshot::FFmpegReader
This class uses the FFmpeg libraries, to open video files and audio files, and return openshot::Frame...
Definition FFmpegReader.h:103
openshot::ImageWriter::ImageWriter
ImageWriter(std::string path)
Constructor for ImageWriter. Throws one of the following exceptions.
Definition ImageWriter.cpp:27

Definition at line 59 of file ImageWriter.h.

## Constructor & Destructor Documentation

## ImageWriter()

ImageWriter::ImageWriter | ( | std::string | path | ) |

Constructor for ImageWriter. Throws one of the following exceptions.

Parameters

  path | The path of the file you want to create

Definition at line 27 of file ImageWriter.cpp.

## Member Function Documentation

## Close()

void ImageWriter::Close | ( |  | ) |

Close the writer and encode/output final image to the disk. This is a requirement of ImageMagick, which writes all frames of a multi-frame image at one time.

Definition at line 140 of file ImageWriter.cpp.

## GetCacheSize()

int openshot::ImageWriter::GetCacheSize | ( |  | ) |

inline

Get the cache size.

Definition at line 84 of file ImageWriter.h.

## IsOpen()

bool openshot::ImageWriter::IsOpen | ( |  | ) |

inline virtual

Determine if writer is open or closed.

Implements openshot::WriterBase.

Definition at line 87 of file ImageWriter.h.

## Open()

void ImageWriter::Open | ( |  | ) |

virtual

Open writer.

Implements openshot::WriterBase.

Definition at line 79 of file ImageWriter.cpp.

## SetCacheSize()

void openshot::ImageWriter::SetCacheSize | ( | int | new_size | ) |

inline

Set the cache size (number of frames to queue before writing).

Parameters

  new_size | Number of frames to queue before writing

Definition at line 94 of file ImageWriter.h.

## SetVideoOptions()

void ImageWriter::SetVideoOptions | ( | std::string | format,
|  | Fraction | fps,
|  | int | width,
|  | int | height,
|  | int | quality,
|  | int | loops,
|  | bool | combine )

Set the video export options.

Parameters

  format | The image format (such as GIF)
  fps | Frames per second of the image (used on certain multi-frame image formats, such as GIF)
  width | Width in pixels of image
  height | Height in pixels of image
  quality | Quality of image (0 to 100, 70 is default)
  loops | Number of times to repeat the image (used on certain multi-frame image formats, such as GIF)
  combine | Combine frames into a single image (if possible), or save each frame as its own image

Definition at line 36 of file ImageWriter.cpp.

## WriteFrame() [1/2]

void ImageWriter::WriteFrame | ( | ReaderBase * | reader,
|  | int64_t | start,
|  | int64_t | length )

virtual

Write a block of frames from a reader.

Parameters

  reader | A openshot::ReaderBase object which will provide frames to be written
  start | The starting frame number of the reader
  length | The number of frames to write

Implements openshot::WriterBase.

Definition at line 121 of file ImageWriter.cpp.

## WriteFrame() [2/2]

void ImageWriter::WriteFrame | ( | std::shared_ptr< Frame > | frame | ) |

Add a frame to the stack waiting to be encoded.

Parameters

  frame | The openshot::Frame object to write to this image

Definition at line 85 of file ImageWriter.cpp.

Referenced by WriteFrame().

The documentation for this class was generated from the following files:

- ImageWriter.h
- ImageWriter.cpp