= 3; } /** * @inheritDoc */ protected function getModuleValue($value):array{ return array_values($value); } /** * @inheritDoc */ protected function getDefaultModuleValue(bool $isDark):array{ return $isDark ? [0, 0, 0] : [255, 255, 255]; } /** * @inheritDoc * * @return string|\FPDF */ public function dump(string $file = null){ $file ??= $this->options->cachefile; $fpdf = new FPDF('P', $this->options->fpdfMeasureUnit, [$this->length, $this->length]); $fpdf->AddPage(); $prevColor = null; foreach($this->matrix->matrix() as $y => $row){ foreach($row as $x => $M_TYPE){ /** @var int $M_TYPE */ $color = $this->moduleValues[$M_TYPE]; if($prevColor !== $color){ /** @phan-suppress-next-line PhanParamTooFewUnpack */ $fpdf->SetFillColor(...$color); $prevColor = $color; } $fpdf->Rect($x * $this->scale, $y * $this->scale, 1 * $this->scale, 1 * $this->scale, 'F'); } } if($this->options->returnResource){ return $fpdf; } $pdfData = $fpdf->Output('S'); if($file !== null){ $this->saveToFile($pdfData, $file); } if($this->options->imageBase64){ $pdfData = $this->base64encode($pdfData, 'application/pdf'); } return $pdfData; } }