sppas 5.1.0

https://sppas.org/

Module sppas.src.videodata

Class sppasImageVideoWriter

Description

Write a video from a folder with images or a single image.

Constructor

__init__

Create an instance of sppasImageVideoWriter.

Parameters
  • folder: (str) Input filename or directory with images.
View Source
def __init__(self, folder):
    """Create an instance of sppasImageVideoWriter.

    :param folder: (str) Input filename or directory with images.

    """
    super(sppasImageVideoWriter, self).__init__()
    self.__mul = 1
    self.__repeat = 1
    logging.debug('Search for images in folder {}'.format(folder))
    self.__all_images = list()
    if os.path.isdir(folder):
        for img_ext in image_extensions:
            img_files = sppasDirUtils.dir_entries(folder, extension=img_ext, subdir=True)
            if len(img_files) > 0:
                logging.debug('... found {} {} images in folder'.format(len(img_files), img_ext))
                self.__all_images.extend(img_files)
            else:
                logging.debug(' .. no image found with extension {}'.format(img_ext))
    elif os.path.isfile(os.path.join(folder)):
        self.__all_images.append(os.path.join(folder))
    else:
        raise ValueError('Invalid argument for folder: {}'.format(folder))

Public functions

img_mul

Set the number of times to write each image.

Parameters
  • value: (int) At least 1.
View Source
def img_mul(self, value):
    """Set the number of times to write each image.

        :param value: (int) At least 1.

        """
    value = int(value)
    if value < 1:
        value = 1
    self.__mul = value

repeat

Set the number of times to repeat the sequence of images.

Parameters
  • value: (int) At least 1.
View Source
def repeat(self, value):
    """Set the number of times to repeat the sequence of images.

        :param value: (int) At least 1.

        """
    value = int(value)
    if value < 1:
        value = 1
    self.__repeat = value

export

Parameters
  • video_name
View Source
def export(self, video_name):
    """

        """
    self.open(video_name)
    for r in range(self.__repeat):
        for i, img_name in enumerate(sorted(self.__all_images)):
            img = sppasImage(filename=img_name)
            for x in range(self.__mul):
                self.write(img)
            if i > 0 and i % 100 == 0:
                logging.debug('{:d} images added to the video'.format(i))
    self.close()