// Lies ein ASCII-Bild ein und erzeuge ein neues, viermal so grosses Bild
// durch Spiegeln an der x- und der y-Achse

#include <fstream>
#include <iostream>
#include <vector>

using namespace std;

typedef vector<string> matrix;

// Lies das Bild ein und fülle alle Zeilen mit Leerzeichen bis zur Länge
// der längsten Zeile auf, damit ein rechteckiges Bild entsteht
void picread(const char* filename, matrix& m) {
  string line;
  size_t maxLength = 0;
  ifstream fin(filename);
  if (fin.fail()) {
    cout << "Can't open file " << filename << endl;
    exit(1);
  }
  
  while (getline(fin, line)) {
     m.push_back(line);
     maxLength = max(maxLength, line.length());
  }
  // Zeilen auf maximale Länge auffüllen
  for (size_t y = 0; y < m.size(); y++) {
    if (m[y].size() < maxLength) {
      m[y] += string(maxLength - m[y].size(), ' ');
    }
  }
  cout << "width = " << m[0].size() << endl;
  cout << "height = " << m.size() << endl;
}

int main(int argc, char* argv[]) {
  if (argc < 2) {
    cout << argv[0] << ": keine Datei angegeben" << endl;
    exit (1);
  }

  matrix picture(0);
  picread(argv[1], picture);

  // Gib Bild aus
  // picwrite(...);
  // Vervierfache das Bild
  // mirror(...);
  // Gib neues Bild aus
  // picwrite(...);

  return 0;
}

