Laden...

Screenshot erzeugen

Erstellt von budili vor 16 Jahren Letzter Beitrag vor 16 Jahren 9.100 Views
B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren
Screenshot erzeugen

Hallo Leute,

ist es ohne weiteres möglich einen Screenshot
des eigenen Systems zu erzeugen und das Bild
als JPEG-Datei zu speichern?

Gruß
Tim

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

das Thema wurde schon ziemelich oft besprochen. Bitte benutze die Forumssuche und poste die besten Treffer hier. Vielen Dank!

herbivore

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Okay habe ich gemacht:
Screencopy ... Wirklich so einfach ???

Jetzt hätte ich noch eine weitere Frage:
Ist es möglich die Bildschirmauflösung zu simulieren?

Gruß
Tim

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

2.921 Beiträge seit 2005
vor 16 Jahren

In welchem Sinne simulieren? Ich denke wenn du das Bild dementsprechend kleiner haben willst, reicht es, es zu verkleinern (Skalierung).

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Mit simulieren meine ich, einen Screenshot in einer anderen Auflösung
zu erzeugen, als der aktuell verwendeten.

Bsp: aktuell verwendete Auflösung: 1280 x 1024
Ich möchte nun ein Screenshot haben, von meinem System
in der Auflösung: 1024 x 768 ...

Per hand sowas immer zu machen ist doof, weil die Icons hinterher
oft verschoben werden.

Deshalb bräuchte ich da etwas, das sowas auto. erledigt.
Nur weiß ich nicht, ob es überhaupt möglich ist.

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

einen kannst du natürlich immer nur davon machen, wie der gerade Screen aussieht, nicht wie er aussehen würde, wenn die Bildschirmauflösung anders wäre.

herbivore

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

okay, d.h. man kann keine Auflösung simulieren ...
Nur mit der aktuell verwendeten Auflösung die Screens
schießen.

Stimmt soweit oder?

P.S. Wie kann man die Bildschirmauflösung ändern?

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

871 Beiträge seit 2005
vor 16 Jahren

Hallo,

warum machst Du nicht einen Screenshot in der aktuellen Auflösung und skalierst diesen dann auf die gewünschte Auflösung?

Grüsse,
Egon

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Hm die Idee ist nicht schlecht, nur weiß ich nicht genau
ob das mit meiner Software klappt.

Folgendes Problem:
Habe hier eine Software die ihre Oberfläche von der
aktuellen Auflösung erzeugt/anpasst.

Nun weiß ich nicht genau ob ich das selbe Ergebnis
bekomme, wenn ich das Bild im nachhinein skaliere...

Aber theoretisch müsste das Ergebnis identisch sein oder?

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

naja, das Skalieren macht schon einen kleinen Unterschied, inbesondere wenn die Seitenverhältnisse sich ändern wie bei 1280 x 1024 (5:4) ==> 1024 x 768 (4:3).

herbivore

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Ojee .. das weiß ich gar nicht genau.

Festeht, dass der Client einen Windows-Rechner hat
und eine feste Auflösung.

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Naja gut, ich gehe mal davon aus, dass die Seitenverhältnisse sich
nicht ändern.

Kann mir jemand sagen wie ich das Bild auf die
gewünschte Auflösung skaliere?

Gruß
Budi

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

neue Bitmap in der gewünschten Größe erstellen, Graphics.FromImage dafür aufrufen und mit Graphics.DrawImage das alte Bild in das neue zeichnen.

BTW: Auch das hättest du über die Forumssuche gefunden.

herbivore

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

ja sorry, habe solche Sachen noch nie gemacht,
deshalb die Frage an euch (dich) 😉

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

ja, siehst du und wir haben solche Fragen schon oft beantwortet und deshalb bitten wir dich, die Forumssuche stärker zu benutzen. Siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.

herbivore

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Okay herbivore, damit habe ich generell kein Problem.
Nur wenn man sich nicht ganz sicher ist, wie man
etwas realisieren möchte/könnte, dann frage ich
lieber vorher nacht...

Hat sich bei meinem Problem wieder bewährt,
wenn ich nur gesucht hätte, dann wäre ich
auf die Idee von "egrath" nicht gestoßen 8)

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

ich möchte, dass du die Fragen, die du über die Forensuche selbst beantworten kannst, nicht stellst. Nicht mehr, aber auch nicht weniger. Und da erwarten wir das von dir auch. dass du so verfährst, egal was du vielleicht besser finden würdest.

Und das waren hier die Eingangsfrage und die nach dem Skalieren. Von den anderen Fragen habe ich nicht gesprochen.

herbivore

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Okay .. habs mal gemacht:


            Image pfadImage = Image.FromFile(@"c:\Test.tif");
            Bitmap skaliereBild = new Bitmap(pfadImage, new Size(1600, 1200));
            Graphics tempGraphic = Graphics.FromImage(skaliereBild);
            tempGraphic.DrawImage(skaliereBild, 0, 0);
            skaliereBild.Save(@"c:\new.tif");

Scheint auch zu funktionieren ... ist es von der Logik so okay?

Gruß
Budi

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

139 Beiträge seit 2006
vor 16 Jahren

Im grunde ja nur du hast überflüssigen Code drinne:

            Graphics tempGraphic = Graphics.FromImage(skaliereBild);
            tempGraphic.DrawImage(skaliereBild, 0, 0);

Die Zeilen könenn weg, brauchst das skallierte Bild nciht noch einmal über das skallierte Bild malen 😉

Gruss Ari
Wer lesen kann ist klar im vorteil!
MSDN
Dein Feund in allen fragen

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Hallo,

hätte nochmal ne Frage zum erstellen von Screenshots,
ich hab das jetzt mal so getestet:


this.Opacity = 0.0;  // Verstecken der Form vor dem Screencopy
            // Screencopy erstellen und in BildschirmBMP ablegen
            Screen Bildschirm = Screen.PrimaryScreen;

            using (Bitmap BildschirmBMP = new Bitmap(Bildschirm.Bounds.Width,        // Ziel-Bitmap
                                                       Bildschirm.Bounds.Height,
                              System.Drawing.Imaging.PixelFormat.Format24bppRgb))
            {
                using (Graphics BildschirmGR = Graphics.FromImage(BildschirmBMP))
                {
                    // Graphics erzeugen
                    BildschirmGR.CopyFromScreen(Bildschirm.Bounds.X, Bildschirm.Bounds.Y, // Abbild erstellen 
                                                0, 0, BildschirmBMP.Size);
                }
                
                // Screencopy verarbeiten
                BildschirmBMP.Save(str_pfadScreen); // Screenshot speichern
            }
            this.Opacity = 1.0;  // Wieder anzeigen der Form nach dem Screencopy

Nur habe ich das Problem, dass die Anwendung, welche den Screenshot erzeugt,
nicht immer unsichtbar wird! Manchmal funktionierts wie es sein soll
und auf manchen Bildern ist diese zu sehen ..

Was mache ich da falsch?

P.S. Kann mir da keiner einen Tipp geben? Oder ist es so okay .. ??

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

309 Beiträge seit 2007
vor 16 Jahren

Wow. Da kommt meine Routine ja doch noch zu Ehren g 8)

Frage: Auf welches **this **bezieht sich dein **Opacity **...
Es müsste sich ja auf jeden Fall, auf die Form selber beziehen, sonst wird nur ein Teil unsichtbar.

Mfg Hajoseb

(Habe damals keine bessere Lösung als mit Opacity finden können ...)

**"Zufall ist das Pseudonym Gottes, wenn er nicht selbst unterschreiben will.” **
Anatole France

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Ja es bezieht sich auf die Form.
Habe es noch mit Visible versucht, aber das selbe Ergebnis.

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren
Auflösung simulieren

Hallo Leute,

ist es möglich eine Anwendung in einer kleineren Auflösung zu
starten, ohne die aktuelle dabei zu verändern?

Bsp: aktuell verwendte Auflösung 1280x1024
Nun möchte ich mein Programm in der Auflösung 800x600 starten,
wie realisiere ich das am besten, ohne die aktuell vewendete
Auflösung zu verändern?

Oder genügt es, wenn ich beim Prog Width und Height auf 800 und 600
einstelle? Ist es das selbe Ergebnis?

Gruß
Budi

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

1.433 Beiträge seit 2006
vor 16 Jahren

Meiner Meinung nach wäre dass eine zweite Auflösung im Bildschirm, was definitiv nicht geht.

Oder genügt es, wenn ich beim Prog Width und Height auf 800 und 600
einstelle? Ist es das selbe Ergebnis? Ich würde es so lösen. Und wenn Du die Auflösung wegen der Schrift- und Darstellungsgrösse ändern willst, dann kannst Du sonst eine Lupen- oder Zoomfunktion einbauen (so wie der IE 7 eine hat).

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Okay dann werde ichs mal versuchen ...
War mir nur nicht sicher ob das Ergebnis das selbe ist ...

Die Schrift etc ist irrelevant, mir gehts nur um die Verteilung der
Buttons bei dem Prog, weil die abhängig von der Auflösung sind.

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

bitte keine Crossposts ==> zusammengefügt. Die Frage hattest du oben schon gestellt.

herbivore