Sdílet prostřednictvím


Graphics.FromImage(Image) Metoda

Definice

Vytvoří nový Graphics ze zadaného Image.

public:
 static System::Drawing::Graphics ^ FromImage(System::Drawing::Image ^ image);
public static System.Drawing.Graphics FromImage (System.Drawing.Image image);
static member FromImage : System.Drawing.Image -> System.Drawing.Graphics
Public Shared Function FromImage (image As Image) As Graphics

Parametry

image
Image

Image, ze kterého chcete vytvořit nový Graphics.

Návraty

Tato metoda vrátí novou Graphics pro zadanou Image.

Výjimky

image je null.

image má indexovaný formát pixelů nebo je jeho formát nedefinovaný.

Příklady

Následující příklad kódu je určený pro použití s Windows Forms a vyžaduje PaintEventArgse, což je parametr obslužné rutiny události Paint. Kód provede následující akci:

  • Vytvoří Image z grafického souboru SampImag.jpg v ukázkové složce.

  • Vytvoří Graphics z Image.

  • Změní obrázek vyplněním obdélníku v něm.

  • Nakreslí Image na obrazovku.

  • Uvolní vytvořenou Graphics.

public:
   void FromImageImage( PaintEventArgs^ e )
   {
      // Create image.
      Image^ imageFile = Image::FromFile( "SampImag.jpg" );

      // Create graphics object for alteration.
      Graphics^ newGraphics = Graphics::FromImage( imageFile );

      // Alter image.
      newGraphics->FillRectangle( gcnew SolidBrush( Color::Black ), 100, 50, 100, 100 );

      // Draw image to screen.
      e->Graphics->DrawImage( imageFile, PointF(0.0F,0.0F) );

      // Dispose of graphics object.
      delete newGraphics;
   }
private void FromImageImage(PaintEventArgs e)
{

    // Create image.
    Image imageFile = Image.FromFile("SampImag.jpg");

    // Create graphics object for alteration.
    Graphics newGraphics = Graphics.FromImage(imageFile);

    // Alter image.
    newGraphics.FillRectangle(new SolidBrush(Color.Black), 100, 50, 100, 100);

    // Draw image to screen.
    e.Graphics.DrawImage(imageFile, new PointF(0.0F, 0.0F));

    // Dispose of graphics object.
    newGraphics.Dispose();
}
Private Sub FromImageImage2(ByVal e As PaintEventArgs)

    ' Create image.
    Dim imageFile As Image = Image.FromFile("SampImag.jpg")

    ' Create graphics object for alteration.
    Dim newGraphics As Graphics = Graphics.FromImage(imageFile)

    ' Alter image.
    newGraphics.FillRectangle(New SolidBrush(Color.Black), _
    100, 50, 100, 100)

    ' Draw image to screen.
    e.Graphics.DrawImage(imageFile, New PointF(0.0F, 0.0F))

    ' Dispose of graphics object.
    newGraphics.Dispose()
End Sub

Poznámky

Pokud má obrázek indexovaný formát pixelů, tato metoda vyvolá výjimku se zprávou "Grafický objekt nelze vytvořit z obrázku, který má indexovaný formát pixelů". Indexované formáty pixelů jsou uvedeny v následujícím seznamu.

Indexovaný obrázek můžete uložit jako jiný formát pomocí metody Save(String, ImageFormat) a pak načíst objekt Graphics pro nový obrázek.

Tato metoda také vyvolá výjimku, pokud má obrázek některý z následujících formátů pixelů.

Vždy byste měli zavolat metodu Dispose, která uvolní Graphics a související prostředky vytvořené metodou FromImage.

Platí pro

Viz také