public ScreenshotGenerator(
			final ThreadManager threadManager,
			final Component guiComponent,
			final File inputFile,
			final String outputFilename,
			final File outputDirectory,
			boolean copyableSource,
			final Dimension imageSize,
			int quality,
			double time
		) {
			super(threadManager, null, 1.0, 0);

			String ext;
			if (copyableSource && quality == -1) {
				ext = Videncode.getFileExt(inputFile);
				if (ext.equals("")) ext = ".png";
				this.copySource = true;
			}
			else {
				ext = (quality <= 0 ? ".png" : ".jpg");
				if (quality < ((Videncode) threadManager).getImageQualityRange()[0]) {
					quality = ((Videncode) threadManager).getImageQualityRange()[0];
				}
				else if (quality > ((Videncode) threadManager).getImageQualityRange()[1]) {
					quality = ((Videncode) threadManager).getImageQualityRange()[1];
				}
				this.copySource = false;
			}

			this.outputFileDir = outputDirectory;
			this.outputFile = new File(outputDirectory, (outputFilename + ext));
			for (int i = 1; this.outputFile.exists(); ++i) {
				this.outputFile = new File(outputDirectory, (outputFilename + "[" + i + "]" + ext));
			}

			this.inputFile = inputFile;
			this.time = time;
			this.quality = quality;
			this.guiComponent = guiComponent;

			this.imageSize.width = imageSize.width;
			this.imageSize.height = imageSize.height;
		}