Získat a Nastavit Obrázek do ovládacího prvku picturebox, když byl Obraz vytváří v jiné třídě

0

Otázka

snažím se učit každý den se něco nového o c#. Teď im snaží dostat Obraz z počítače, a udělal jsem to v jiné třídě. Teď nevím, jak to bude fungovat. Jak mohu získat obraz, který byl vytvořen v mém screenshotu.cs tak, že jsem můžete nastavit tak, aby ovládacího picturebox, který je v mém Form1.cs

Můj Kód je:

namespace CatchAreaToImage
{

    public partial class Form1 : Form
    {

        Bitmap screen;

          
        public Form1()
        {

            InitializeComponent();
        }
        Bitmap screen2;
        private void button1_Click(object sender, EventArgs e)
        {
            Screenshot.CaptureScreen(screen2);

            pBArea.Image = screen2;


        }

Můj Screenshot.cs ist toto:

    class Screenshot
    {

        public static void CaptureScreen() //do screenshot of desktop
        {
            // Take an image from the screen
            Bitmap screen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); // Create an empty bitmap with the size of the current screen 

            Graphics graphics = Graphics.FromImage(screen as Image); // Create a new graphics objects that can capture the screen

            graphics.CopyFromScreen(0, 0, 0, 0, screen.Size); // Screenshot moment → screen content to graphics object

        }

    }
        public void Image(Bitmap screen)
        {
            screen2 = screen;
        }

Doufám, že jsem mohl popsat můj problém správně.

c# class picturebox
2021-11-23 19:08:20
1

Nejlepší odpověď

3

Můžete upravit vaše CaptureScreen metoda vrátí Rastrový variabilní obrazovce a přiřadit ji do ovládacího prvku picturebox.Obrázek vlastnost.

class Screenshot
{
    public static Image CaptureScreen()
    {
        
        Bitmap screen = new Bitmap(
            Screen.PrimaryScreen.Bounds.Width, 
            Screen.PrimaryScreen.Bounds.Height);

        Graphics graphics = Graphics.FromImage(screen as Image);

        graphics.CopyFromScreen(0, 0, 0, 0, screen.Size); 

        return screen;
    }
}

A pak v podobě třídy můžete udělat úkol jako Rastrový obrázek dědí z Image

namespace CatchAreaToImage
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Image screen = Screenshot.CaptureScreen(); 
            this.pictureBox1.Image = screen;
            // other uses of screen possible
        }
    }
}
2021-11-23 20:12:52

ano díky, to funguje :) ale je možné nastavit hodnotu obrazovce další proměnnou a pak ji po picturebox1.obrázek? jako picturebox1.image = screen2?
Winchester

Ano, můžete přiřadit vrácená hodnota z funkce, aby nová proměnná v rozsahu button1_Click a přiřadit ji několikrát jako tento Obrázek obrazovky = Screenshot.CaptureScreen ();.pictureBox1.Image = displej;.pictureBox2.Image = obrazovka; Je to to, co chcete?
Maciej Hoga

Ano, to je to, co jsem chtěl. Díky
Winchester

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................