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. More...
int | GetCacheSize ()
| Get the cache size. More...
| ImageWriter (string path)
| Constructor for ImageWriter. Throws one of the following exceptions. More...
bool | IsOpen ()
| Determine if writer is open or closed. More...
void | Open ()
| Open writer. More...
void | SetCacheSize (int new_size)
| Set the cache size (number of frames to queue before writing) More...
void | SetVideoOptions (string format, Fraction fps, int width, int height, int quality, int loops, bool combine)
| Set the video export options. More...
void | WriteFrame (std::shared_ptr< Frame > frame)
| Add a frame to the stack waiting to be encoded. More...
void | WriteFrame (ReaderBase *reader, int64_t start, int64_t length)
| Write a block of frames from a reader. More...
Public Member Functions inherited from openshot::WriterBase
void | CopyReaderInfo (ReaderBase *reader)
| This method copy's the info struct of a reader, and sets the writer with the same info. More...
void | DisplayInfo ()
| Display file information in the standard output stream (stdout) More...
string | Json ()
| Get and Set JSON methods. More...
Json::Value | JsonValue ()
| Generate Json::JsonValue for this object. More...
void | SetJson (string value)
| Load JSON string into this object. More...
void | SetJsonValue (Json::Value root)
| Load Json::JsonValue into this object. More...
| WriterBase ()
| Constructor for WriterBase class, many things are initialized here. More...

## Additional Inherited Members

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

## 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();

Definition at line 85 of file ImageWriter.h.

## Constructor & Destructor Documentation

## ImageWriter()

ImageWriter::ImageWriter | ( | 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 35 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 139 of file ImageWriter.cpp.

## GetCacheSize()

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

inline

Get the cache size.

Definition at line 111 of file ImageWriter.h.

## IsOpen()

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

inline virtual

Determine if writer is open or closed.

Implements openshot::WriterBase.

Definition at line 114 of file ImageWriter.h.

## Open()

void ImageWriter::Open | ( |  | ) |

virtual

Open writer.

Implements openshot::WriterBase.

Definition at line 83 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 121 of file ImageWriter.h.

## SetVideoOptions()

void ImageWriter::SetVideoOptions | ( | 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 it's own image

Definition at line 45 of file ImageWriter.cpp.

## WriteFrame() [1/2]

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

virtual

Add a frame to the stack waiting to be encoded.

Parameters

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

Implements openshot::WriterBase.

Definition at line 89 of file ImageWriter.cpp.

## WriteFrame() [2/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 123 of file ImageWriter.cpp.

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

- ImageWriter.h
- ImageWriter.cpp