Hallo,
ich bin neu hier und habe folgende Frage.
Ich habe ein Programm geschrieben, welches Fraktale erzeugt. Diese können als *. png gespeichert werden. funktioniert alles...
Jetzt stehe ich aber vor folgendem Punkt:
Wie bekomme ich es hin, dass das Programm quasi eine batch ausführt also:
rendern
speichern
Dateinamen um 1 erhöhen
zoomen/werte ändern
... und das eben in einer schleife...
ich scheitere daran, die Datei zu speichern und den Dateinamen dann um 1 zu erhöhen.
also
//Rendering
string str_filename;
int filenamectr = 1;
str_filename=filenamectr.ToString();
string full_filename = "C:\neu\\" + str_filename + ".png";
filenamectr = Convert.ToInt32(str_filename);
filenamectr=filenamectr++;
pictureBox2.Image.Save=(full_filename);
//Wertemodifikation
Ich komm da irgendwie nicht weiter... Es gibt vielleicht einen besseren weg, als mit converts zu arbeiten...
Die Initialisierungen kommen aus der schleife raus...
Vielen Dank
Gruß
Fabian
Hey,
filenamectr=filenamectr++;
Daraus dies
filenamectr++;
machen und deine frage zum erhöhen sollte beantwortet sein
ps: das hin und her zwischen int und string solltest du dir evtl. nochmal anschaun und bisschen drüber denken, ob es an manchen stellen nicht notwendig ist
Steht der Code genau so drin? Da fehlt ein zweiter Backslash bei "C:". Du konvertierst außerdem zuerst den Integer in einen String, dann wieder zurück nach Integer, um ihn dann um 1 zu erhöhen? Brauchst du doch gar nicht.
Diese Zeilen sind daher unnötig.
str_filename=filenamectr.ToString();
filenamectr = Convert.ToInt32(str_filename);
filenamectr=filenamectr++;
Weiter ist dieses Konstrukt Unsinn. filenamectr++ macht wohl eher, was du willst, ohne Zuweisung auf sich selbst.
Woran scheiterst du denn wirklich? Wird das Bild nicht korrekt gespeichert? Das liegt vielleicht daran, dass du kein ImageFormat beim Speichern mitlieferst. Woher soll dein Programm wissen, dass du ein PNG haben willst? Dateiendungen sind dafür nicht geeignet, das festzustellen.
Hi yotta,
ansonsten ist der Code auch recht unübersichtlich und an vielen Stellen fehlerhaft. Ich würde es einfach so probieren:
const string fileName = "SomeFileName";
int frameNumber = 0;
// In der Schleife:
string frameFileName = string.Format(@"c:\neu\{0}{1:D4}.png", fileName, frameNumber++);
Christian
Weeks of programming can save you hours of planning
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.