public function gf(): self
    {
        $arguments = func_get_args();

        if (func_num_args() === 1 && ($image = $arguments[0]) instanceof ImageContract) {
            $bytesPerRow = $image->width();
            $byteCount = $fieldCount = $bytesPerRow * $image->height();

            return $this->command('GF', 'A', $byteCount, $fieldCount, $bytesPerRow, $image->toAscii());
        }

        array_unshift($arguments, 'GF');

        return call_user_func_array([$this, 'command'], $arguments);
    }