Autor Beitrag
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 24.04.06 15:32 
Hallo (mein erster Thread hier im c# Forum ^^)

Naja, ich hab mich erstmal mit der Syntax von c# auseinandergesetzt, die ich einigermaßen verstehe, hab auch schon einen text in einem label ausgeben können, diverse sachen berechnen usw, jetzt sollte es aber daran gehen, ein bild in eine pictureBox zu laden, ich habs mit
ausblenden C#-Quelltext
1:
pictureBox1.Image.FromFile("test.bmp");					

versucht, das schlug aber leider fehl :(

benutzen tue ich delphi2005 und das ist eine c# windows anwendung (hab noch net gefunden dass da wo steht dass man c# für .net verwenden kann, da steht nur was von asp.net, bei delphi steht aber delphi für .net, komisch ^^)

naja irgendwie möchte ich da ein bild reinladen, und weiterführend wäre noch schön wenn ich das vorher in ein temporäres bild laden kann, damit ich nicht immer auf die datei zugreifen muss, ich brauch das nämlich öfter ;)


danke schonmal
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 24.04.06 18:52 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
Hallo (mein erster Thread hier im c# Forum ^^)

Naja, ich hab mich erstmal mit der Syntax von c# auseinandergesetzt, die ich einigermaßen verstehe, hab auch schon einen text in einem label ausgeben können, diverse sachen berechnen usw, jetzt sollte es aber daran gehen, ein bild in eine pictureBox zu laden, ich habs mit
ausblenden C#-Quelltext
1:
pictureBox1.Image.FromFile("test.bmp");					

versucht, das schlug aber leider fehl :(
FromFile ist eine statische Methode.
ausblenden C#-Quelltext
1:
pictureBox1.Image = Image.FromFile("test.bmp");					


user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
benutzen tue ich delphi2005 und das ist eine c# windows anwendung (hab noch net gefunden dass da wo steht dass man c# für .net verwenden kann, da steht nur was von asp.net, bei delphi steht aber delphi für .net, komisch ^^)
Da C# eine reine .Net-Sprache ist, ist das auch so eindeutig ;) .

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
naja irgendwie möchte ich da ein bild reinladen, und weiterführend wäre noch schön wenn ich das vorher in ein temporäres bild laden kann, damit ich nicht immer auf die datei zugreifen muss, ich brauch das nämlich öfter ;)
Mit obigem Code wird ja eine neue Image-Instanz erstellt, diese kannst du zwischenspeichern und dann erst auf die PictureBox übertragen. Wobei du dann noch Image durch Bitmap ersetzen kannst, bietet ein paar Member mehr.
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 24.04.06 19:15 
relative pfade scheint er nicht zu mögen, aber so gehts:
ausblenden C#-Quelltext
1:
pictureBox1.Image = Image.FromFile("l:\\downloads\\bla.bmp");					


und wie deklariere ich ein temporäres und wie muss ich das freigeben, oder ist da ein garbage collector der mir das abnimmt ?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 24.04.06 20:39 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
und wie deklariere ich ein temporäres und wie muss ich das freigeben, oder ist da ein garbage collector der mir das abnimmt ?
Jain ;) . Die Instanz wird vom CLR-GC freigegeben, allerdings enthält ein Bitmap native Resourcen (HBITMAP), die du möglichst bald wieder mit Dispose freigeben solltest.
ausblenden volle Höhe C#-Quelltext
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:
public partial class Form1 : Form
  {
    // Das Quellbitmap, das unverändert gehalten werden soll.
    Bitmap source;

    public Form1()
    {
      InitializeComponent();
      source = new Bitmap(100100);

      // noch etwas herummalen
      using (Graphics g = Graphics.FromImage(source))
        g.FillRectangle(Brushes.Blue, 10205050);

      // Eine KOPIE von source der Box zuweisen
      pictureBox1.Image = new Bitmap(source);
    }


    // auf der PictureBox herummalen
    private void AlterImageButton_Click(object sender, EventArgs e)
    {
      using (Graphics g = Graphics.FromImage(pictureBox1.Image))
        g.FillPie(Brushes.Red, 005050045);
      pictureBox1.Refresh();
      
    }

    // Original wiederherstellen
    private void ResetImageButton_Click(object sender, EventArgs e)
    {
      using (Graphics g = Graphics.FromImage(pictureBox1.Image))
        g.DrawImage(source, 00);
      pictureBox1.Refresh();
    }
  }