Processing:Справочник языка Processing/saveFrame()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


saveFrame() [1]

Обозначение

saveFrame()

Описание

Сохраняет последовательность пронумерованных изображений – по одному изображению с каждым вызовом метода. Чтобы сохранить изображение, которое будет идентично тому, что изображено на экране, saveFrame() нужно поставить в самом конце draw() или внутри событий для мышки/клавиатуры вроде mousePressed() и keyPressed(). Чтобы объединить эти изображения в видео, воспользуйтесь инструментом Movie Maker в меню Tools.

Если не указать параметра в saveFrame(), он будет сохранять файлы с названиями вроде «screen-0000.tif», «screen-0001.tif» и так далее. Общее название для последовательности изображений можно задать при помощи параметра filename, включая символы ####, которые будут заменены на порядковый номер изображения (количество символов # задает то, сколько цифр будет использоваться в названии файлов).

Чтобы задать формат сохраняемых изображений, добавьте в конце параметра filename нужное разрешение. Возможные варианты: TIFF (.tif), TARGA (.tga), JPEG (.jpg) или PNG (.png). Файлы изображений сохраняются в папку скетча, которую можно открыть, кликнув в среде разработки Processing на Sketch > Show sketch folder.

Кроме того, изображения можно сохранять на любое место локального компьютера – при помощи полного пути к файлу (в системах Linux и Unix оно начинается с символа «/», а в Windows – с буквы диска). Все изображения, сохраненные с главного окна для рисования, будут непрозрачными. Чтобы сохранить изображение без фона, воспользуйтесь методом createGraphics().

Синтаксис

saveFrame()
saveFrame(filename)

Параметры

filename  любая последовательность букв и цифр, заканчивающаяся на «.tif», «.tga», «.jpg» или «.png». Тип данных  String

Возвращаемое значение

void

Пример

Пример №1

int x = 0;
void draw() {
  background(204);
  if (x < 100) {
    line(x, 0, x, 100);
    x = x + 1;
  } else {
    noLoop();
  }
  // сохраняет каждый кадр как
  // «screen-0001.tif», «screen-0002.tif» и так далее:
  saveFrame(); 
}

Пример №2

int x = 0;
void draw() {
  background(204);
  if (x < 100) {
    line(x, 0, x, 100);
    x = x + 1;
  } else {
    noLoop();
  }
  // сохраняет каждый кадр как
  // «line-000001.png», «line-000002.png» и так далее:
  saveFrame("line-######.png");
}

См.также

Внешние ссылки