Moin,
ich bin momentan dabei ein kleines Programm zu basteln. Und zwar geht es um ein Bildprogramm.
Funktionsprinzip:
Wenn ein Bild mit der Kamera gemacht wird, wird dies in ein Ordner übertragen.
Diesen Ordner lese ich mit Getfiles aus.
Es gibt eine große PictureBox und 8 kleine. Das aktuellste Bild wird immer in die große PictureBox geladen und die nächst älteren kommen in die kleinen Pictureboxen.
Das laden der Bilder würde an und für sich ganz gut klappen. Aber sobald ich anfange die größe der Bilder auszulesen und die größe der PictureBoxen anpassen möchte (Hoch-,Querformat,Skalierung), wird das alles super langsam. D.h. ich kann dem anpassen der Bilder zusehen.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61:
| private void Ausgabe() { lblCountPics.Text = "Anzahl Bilder: " + Convert.ToString(countPics) + "";
double count = (Convert.ToDouble(countPics) / 8); countPages = Math.Ceiling(count); lblPage.Text = "Seite " + actPage + " / " + countPages + ""; try { pcbSmall1.Visible = true;
Image img = Image.FromFile(Files[countPics - 2 - ((actPage - 1) * 8)]);
int breite = img.Width; int höhe = img.Height;
if (höhe > breite) { int neueHöhe = 270; int neueBreite = breite * neueHöhe / höhe;
System.Drawing.Image Angepasst = new System.Drawing.Bitmap(img, neueBreite, neueHöhe); pcbSmall1.SizeMode = PictureBoxSizeMode.CenterImage; pcbSmall1.Height = neueHöhe; pcbSmall1.Width = neueBreite; pcbSmall1.Image = Angepasst; actPicture[1] = 1; } else { int neueHöhe = 140; int neueBreite = breite * neueHöhe / höhe;
System.Drawing.Image Angepasst = new System.Drawing.Bitmap(img, neueBreite, neueHöhe); pcbSmall1.SizeMode = PictureBoxSizeMode.CenterImage; pcbSmall1.Height = neueHöhe; pcbSmall1.Width = neueBreite; pcbSmall1.Image = Angepasst; }
}
catch { pcbSmall1.Visible = false; }
Thread pictureUpdate;
private void UpdatePictures() { countPics = 0;
Files = Directory.GetFiles(pfad, "*.jpg");
foreach (string filePath in Files) { countPics++; actCountPics = countPics; } } |
Dieser Code findet 8 mal hintereinander statt. Jedes mal wenn ein neues Bild in den Ordner eingefügt wird und getfiles dieses erkannt hat, dann wird das ganze wiederholt.
Hat einer vielleicht eine Idee wodran das liegen kann? Oder bin ich mit den PictureBoxen nicht an der richtigen Adresse?
Gruß
PlooserX