Bildbearbeitungsprogramm in C#

Hallo,

ich lerne IT-Systemkaufmann und bin im Moment im 3. LJ. Wir haben ein Schulprojekt bis 20.11.09 aufbekommen, wo wir ein Bildbearbeitungsprogramm nebenbei programmieren sollen. Eigentlich hat der Beruf des IT-Systemkaufmann wenig mit C# zu tun, aber Aufgabe ist Aufgabe.

Kurz zur Aufgabe:
Wir sollen ein Bildbearbeitungsprogramm in C# programmieren für eine Baufirma, die Baumängel etc. dokumentiert. Das Programm sollte folgende Funktionen besitzen: Bild drehen, drucken, speichern, beschriften mit Datum der aufnahme (aus den eigenschaften) + Ort (manuelle eingabe).

Ich habe mich direkt an die Programmierung gemacht, doch irgendwie klappt das nicht so richtig. Wenn ich das Bild beschrifte, wird es gedreht. Außerdem geht nur das drehen in eine Richtung. Kan mit jemand weiterhelfen? Weiß außerdem jemand, wie ich Bilder mit dem aktuellen Datum versehen kann?

Quelltext:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
string dateiname = „Bild“;
Bitmap bmp;
Graphics g;

public Form1()
{
InitializeComponent();
bmp = new Bitmap(dateiname + „.jpg“);
g = Graphics.FromImage(bmp); pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox1.Image = bmp;

}

private void button1_Click(object sender, EventArgs e)
{
// Bild laden:
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox1.Image = bmp;

}

private void button2_Click(object sender, EventArgs e)
{
// Schrift:
Font font = new Font(„Arial“, 36);
Point punkt1 = new Point(10, 100); // like obere Ecke für Schrift

g.DrawString(„Hallo“, font, Brushes.White, punkt1);
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox1.Image = bmp; // Anzeigen Bild mit Schrift

}

private void button3_Click(object sender, EventArgs e)
{
// Speicher:
bmp.Save(dateiname + „_neu“ + „.jpg“);

}

private void button4_Click(object sender, EventArgs e)
{
// Drehen rechts 90 Grad:

bmp.RotateFlip(RotateFlipType.Rotate90FlipNone);

}

private void button5_Click(object sender, EventArgs e)
{
// Drehen links 90 Grad:
bmp.RotateFlip(RotateFlipType.Rotate270FlipNone);
pictureBox1.Refresh();

}
}
}

Danke und VG Kevin

Das aktuelle Datum liefert dir DateTime.Now.
Das drehen kannst du mit der RotateFlipType-Enumeration steuern, da gibt es Member für alle Drehrichtungen.
Warum das Bild gedreht wird kann ich nicht sagen.
Aber in buuton2_Click ist das setzen des SizeModes nicht notwendig/überflüssig.
Desweiteren solltest du deine Setuerelemente richtig benennen, das ist fast schon Gesetz. Außerdem verliert man bei button27 auf Form11 in panel14 leicht den Überblick.

Grüße, JasonDelife.

Guten Tag,

Danke für die schnelle Antwort. Ich habe aber noch kleine Fragen :smile:.

Also, was muss ich verändern, wenn ich die Zeit aus einer Bilddatei laden möchte? (Also das Erzeugungstatum).

Gibt es auch eine Möglichkeit, ein kleines Bild in ein anderes Bild einzufügen? Wir wollen ein kleines Frimenlogo in die rechte untere Ecke einfügen in die Fotos.

VG Kevin

Hi, Ich vermute mal

File.GetCreationTime(string path) (in System.IO)

sollte zum herausfinden der Zeit zimlich nützlich sein.

Und wegen dem Firmenlogo: Ein System.Drawing.Graphics-Obekt hat auch eine

DrawImage(System.Drawing.Image, System.Drawing.Point)

Methode (+30 Überladungen), sollte auch ziemlich nützlich sein.

Mit freundlichen grüssen,
FlySoft