Image.Save Methode

Definitie

Slaat deze afbeelding op in de opgegeven stroom in de opgegeven indeling.

Overloads

Name Description
Save(String, ImageCodecInfo, EncoderParameters)

Hiermee wordt dit Image opgeslagen in het opgegeven bestand, met de opgegeven encoder- en image-encoderparameters.

Save(Stream, ImageCodecInfo, EncoderParameters)

Slaat deze afbeelding op in de opgegeven stroom, met de opgegeven encoder- en afbeeldingscoderingsprogrammaparameters.

Save(String, ImageFormat)

Hiermee wordt dit Image opgeslagen in het opgegeven bestand in de opgegeven indeling.

Save(Stream, ImageFormat)

Slaat deze afbeelding op in de opgegeven stroom in de opgegeven indeling.

Save(String)

Slaat dit Image op in het opgegeven bestand of de opgegeven stream.

Save(String, ImageCodecInfo, EncoderParameters)

Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs

Hiermee wordt dit Image opgeslagen in het opgegeven bestand, met de opgegeven encoder- en image-encoderparameters.

public:
 void Save(System::String ^ filename, System::Drawing::Imaging::ImageCodecInfo ^ encoder, System::Drawing::Imaging::EncoderParameters ^ encoderParams);
public void Save(string filename, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters? encoderParams);
public void Save(string filename, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams);
member this.Save : string * System.Drawing.Imaging.ImageCodecInfo * System.Drawing.Imaging.EncoderParameters -> unit
Public Sub Save (filename As String, encoder As ImageCodecInfo, encoderParams As EncoderParameters)

Parameters

filename
String

Een tekenreeks met de naam van het bestand waarop u dit Imagewilt opslaan.

encoder
ImageCodecInfo

De ImageCodecInfo voor dit Image.

encoderParams
EncoderParameters

Een EncoderParameters te gebruiken voor dit Image.

Uitzonderingen

filename of encoder is null.

De afbeelding is opgeslagen met de verkeerde afbeeldingsindeling.

– of –

De afbeelding is opgeslagen in hetzelfde bestand waaruit deze is gemaakt.

Voorbeelden

In het volgende voorbeeld wordt een Bitmap object gemaakt op basis van een BMP-bestand. De code slaat de bitmap op in drie JPEG-bestanden, elk met een ander kwaliteitsniveau.

#using <System.Drawing.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;
static ImageCodecInfo^ GetEncoderInfo( ImageFormat^ format );
int main()
{
   Bitmap^ myBitmap;
   ImageCodecInfo^ myImageCodecInfo;
   Encoder^ myEncoder;
   EncoderParameter^ myEncoderParameter;
   EncoderParameters^ myEncoderParameters;
   
   // Create a Bitmap object based on a BMP file.
   myBitmap = gcnew Bitmap( "Shapes.bmp" );
   
   // Get an ImageCodecInfo object that represents the JPEG codec.
   myImageCodecInfo = GetEncoderInfo( ImageFormat->Jpeg );
   
   // Create an Encoder object based on the GUID
   // for the Quality parameter category.
   myEncoder = Encoder::Quality;
   
   // Create an EncoderParameters object.
   // An EncoderParameters object has an array of EncoderParameter
   // objects. In this case, there is only one
   // EncoderParameter object in the array.
   myEncoderParameters = gcnew EncoderParameters( 1 );
   
   // Save the bitmap as a JPEG file with quality level 25.
   myEncoderParameter = gcnew EncoderParameter( myEncoder,__int64(25) );
   myEncoderParameters->Param[ 0 ] = myEncoderParameter;
   myBitmap->Save( "Shapes025.jpg", myImageCodecInfo, myEncoderParameters );
   
   // Save the bitmap as a JPEG file with quality level 50.
   myEncoderParameter = gcnew EncoderParameter( myEncoder,__int64(50) );
   myEncoderParameters->Param[ 0 ] = myEncoderParameter;
   myBitmap->Save( "Shapes050.jpg", myImageCodecInfo, myEncoderParameters );
   
   // Save the bitmap as a JPEG file with quality level 75.
   myEncoderParameter = gcnew EncoderParameter( myEncoder,__int64(75) );
   myEncoderParameters->Param[ 0 ] = myEncoderParameter;
   myBitmap->Save( "Shapes075.jpg", myImageCodecInfo, myEncoderParameters );
}

static ImageCodecInfo^ GetEncoderInfo( ImageFormat^ format )
{
   int j;
   array<ImageCodecInfo^>^encoders;
   encoders = ImageCodecInfo::GetImageEncoders();
   for ( j = 0; j < encoders->Length; ++j )
   {
      if ( encoders[ j ]->FormatID == format->Guid)
            return encoders[ j ];

   }
   return nullptr;
}
using System;
using System.Drawing;
using System.Drawing.Imaging;
class Example_SetJPEGQuality
{
    public static void Main()
    {
        Bitmap myBitmap;
        ImageCodecInfo myImageCodecInfo;
        Encoder myEncoder;
        EncoderParameter myEncoderParameter;
        EncoderParameters myEncoderParameters;
                     
        // Create a Bitmap object based on a BMP file.
        myBitmap = new Bitmap("Shapes.bmp");
                     
        // Get an ImageCodecInfo object that represents the JPEG codec.
        myImageCodecInfo = GetEncoderInfo("image/jpeg");
                     
        // Create an Encoder object based on the GUID
                     
        // for the Quality parameter category.
        myEncoder = Encoder.Quality;
                     
        // Create an EncoderParameters object.
                     
        // An EncoderParameters object has an array of EncoderParameter
                     
        // objects. In this case, there is only one
                     
        // EncoderParameter object in the array.
        myEncoderParameters = new EncoderParameters(1);
                     
        // Save the bitmap as a JPEG file with quality level 25.
        myEncoderParameter = new EncoderParameter(myEncoder, 25L);
        myEncoderParameters.Param[0] = myEncoderParameter;
        myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters);
                     
        // Save the bitmap as a JPEG file with quality level 50.
        myEncoderParameter = new EncoderParameter(myEncoder, 50L);
        myEncoderParameters.Param[0] = myEncoderParameter;
        myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters);
                     
        // Save the bitmap as a JPEG file with quality level 75.
        myEncoderParameter = new EncoderParameter(myEncoder, 75L);
        myEncoderParameters.Param[0] = myEncoderParameter;
        myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters);
    }
    private static ImageCodecInfo GetEncoderInfo(String mimeType)
    {
        int j;
        ImageCodecInfo[] encoders;
        encoders = ImageCodecInfo.GetImageEncoders();
        for(j = 0; j < encoders.Length; ++j)
        {
            if(encoders[j].MimeType == mimeType)
                return encoders[j];
        }
        return null;
    }
}
Imports System.Drawing
Imports System.Drawing.Imaging


Class Example_SetJPEGQuality

    Public Shared Sub Main()
        Dim myBitmap As Bitmap
        Dim myImageCodecInfo As ImageCodecInfo
        Dim myEncoder As Encoder
        Dim myEncoderParameter As EncoderParameter
        Dim myEncoderParameters As EncoderParameters

        ' Create a Bitmap object based on a BMP file.
        myBitmap = New Bitmap("Shapes.bmp")

        ' Get an ImageCodecInfo object that represents the JPEG codec.
        myImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg)

        ' Create an Encoder object based on the GUID
        ' for the Quality parameter category.
        myEncoder = Encoder.Quality

        ' Create an EncoderParameters object.
        ' An EncoderParameters object has an array of EncoderParameter
        ' objects. In this case, there is only one
        ' EncoderParameter object in the array.
        myEncoderParameters = New EncoderParameters(1)

        ' Save the bitmap as a JPEG file with quality level 25.
        myEncoderParameter = New EncoderParameter(myEncoder, CType(25L, Int32))
        myEncoderParameters.Param(0) = myEncoderParameter
        myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters)

        ' Save the bitmap as a JPEG file with quality level 50.
        myEncoderParameter = New EncoderParameter(myEncoder, CType(50L, Int32))
        myEncoderParameters.Param(0) = myEncoderParameter
        myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters)

        ' Save the bitmap as a JPEG file with quality level 75.
        myEncoderParameter = New EncoderParameter(myEncoder, CType(75L, Int32))
        myEncoderParameters.Param(0) = myEncoderParameter
        myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters)

    End Sub

    Private Shared Function GetEncoderInfo(ByVal format As ImageFormat) As ImageCodecInfo
        Dim j As Integer
        Dim encoders() As ImageCodecInfo
        encoders = ImageCodecInfo.GetImageEncoders()

        j = 0
        While j < encoders.Length
            If encoders(j).FormatID = format.Guid Then
                Return encoders(j)
            End If
            j += 1
        End While
        Return Nothing

    End Function 'GetEncoderInfo
End Class

Opmerkingen

Het opslaan van de afbeelding in hetzelfde bestand waaruit deze is samengesteld, is niet toegestaan en genereert een uitzondering.

Zie ook

Van toepassing op

Save(Stream, ImageCodecInfo, EncoderParameters)

Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs

Slaat deze afbeelding op in de opgegeven stroom, met de opgegeven encoder- en afbeeldingscoderingsprogrammaparameters.

public:
 void Save(System::IO::Stream ^ stream, System::Drawing::Imaging::ImageCodecInfo ^ encoder, System::Drawing::Imaging::EncoderParameters ^ encoderParams);
public void Save(System.IO.Stream stream, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters? encoderParams);
public void Save(System.IO.Stream stream, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams);
member this.Save : System.IO.Stream * System.Drawing.Imaging.ImageCodecInfo * System.Drawing.Imaging.EncoderParameters -> unit
Public Sub Save (stream As Stream, encoder As ImageCodecInfo, encoderParams As EncoderParameters)

Parameters

stream
Stream

De Stream locatie waar de afbeelding wordt opgeslagen.

encoder
ImageCodecInfo

De ImageCodecInfo voor dit Image.

encoderParams
EncoderParameters

Een EncoderParameters die parameters specificeert die door de afbeeldingscoderingsprogramma worden gebruikt.

Uitzonderingen

stream is null.

De afbeelding is opgeslagen met de verkeerde afbeeldingsindeling.

Opmerkingen

Sla geen installatiekopieën op in dezelfde stroom die is gebruikt om de installatiekopieën samen te stellen. Als u dit doet, kan de stroom beschadigd raken.

De afbeelding moet worden opgeslagen in de stroom op een offset van nul. Als er aanvullende gegevens naar de stroom zijn geschreven voordat de afbeelding wordt opgeslagen, worden de afbeeldingsgegevens in de stream beschadigd.

Van toepassing op

Save(String, ImageFormat)

Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs

Hiermee wordt dit Image opgeslagen in het opgegeven bestand in de opgegeven indeling.

public:
 void Save(System::String ^ filename, System::Drawing::Imaging::ImageFormat ^ format);
public void Save(string filename, System.Drawing.Imaging.ImageFormat format);
member this.Save : string * System.Drawing.Imaging.ImageFormat -> unit
Public Sub Save (filename As String, format As ImageFormat)

Parameters

filename
String

Een tekenreeks met de naam van het bestand waarop u dit Imagewilt opslaan.

format
ImageFormat

De ImageFormat voor dit Image.

Uitzonderingen

filename of format is null.

De afbeelding is opgeslagen met de verkeerde afbeeldingsindeling.

– of –

De afbeelding is opgeslagen in hetzelfde bestand waaruit deze is gemaakt.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een bitmap maakt van een type en hoe u de Save methode gebruikt. Als u dit voorbeeld wilt uitvoeren, plakt u de code in een Windows formulier. De gebeurtenis van Paint het formulier afhandelen en de ConstructFromResourceSaveAsGif methode aanroepen, waarbij deze wordt doorgegeven e als PaintEventArgs

private:
    void ConstructFromResourceSaveAsGif(PaintEventArgs^ e)
    {
        // Construct a bitmap from the button image resource.
        Bitmap^ bmp1 = gcnew Bitmap(Button::typeid, "Button.bmp");
        String^ savePath =  
            Environment::GetEnvironmentVariable("TEMP") + "\\Button.bmp";

        try
        {
            // Save the image as a GIF.
            bmp1->Save(savePath, System::Drawing::Imaging::ImageFormat::Gif);
        }
        catch (IOException^)
        {
            // Carry on regardless
        }

        // Construct a new image from the GIF file.
        Bitmap^ bmp2 = nullptr;
        if (File::Exists(savePath))
        {
            bmp2 = gcnew Bitmap(savePath);
        }

        // Draw the two images.
        e->Graphics->DrawImage(bmp1, Point(10, 10));

        // If bmp1 did not save to disk, bmp2 may be null
        if (bmp2 != nullptr)
        {
            e->Graphics->DrawImage(bmp2, Point(10, 40));
        }

        // Dispose of the image files.
        delete bmp1;
        if (bmp2 != nullptr)
        {
            delete bmp2;
        }
    }
private void ConstructFromResourceSaveAsGif(PaintEventArgs e)
{

    // Construct a bitmap from the button image resource.
    Bitmap bmp1 = new Bitmap(typeof(Button), "Button.bmp");

    // Save the image as a GIF.
    bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif);

    // Construct a new image from the GIF file.
    Bitmap bmp2 = new Bitmap("c:\\button.gif");

    // Draw the two images.
    e.Graphics.DrawImage(bmp1, new Point(10, 10));
    e.Graphics.DrawImage(bmp2, new Point(10, 40));

    // Dispose of the image files.
    bmp1.Dispose();
    bmp2.Dispose();
}
Private Sub ConstructFromResourceSaveAsGif(ByVal e As PaintEventArgs)

    ' Construct a bitmap from the button image resource.
    Dim bmp1 As New Bitmap(GetType(Button), "Button.bmp")

    ' Save the image as a GIF.
    bmp1.Save("c:\button.gif", System.Drawing.Imaging.ImageFormat.Gif)

    ' Construct a new image from the GIF file.
    Dim bmp2 As New Bitmap("c:\button.gif")

    ' Draw the two images.
    e.Graphics.DrawImage(bmp1, New Point(10, 10))
    e.Graphics.DrawImage(bmp2, New Point(10, 40))

    ' Dispose of the image files.
    bmp1.Dispose()
    bmp2.Dispose()
End Sub

Van toepassing op

Save(Stream, ImageFormat)

Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs

Slaat deze afbeelding op in de opgegeven stroom in de opgegeven indeling.

public:
 void Save(System::IO::Stream ^ stream, System::Drawing::Imaging::ImageFormat ^ format);
public void Save(System.IO.Stream stream, System.Drawing.Imaging.ImageFormat format);
member this.Save : System.IO.Stream * System.Drawing.Imaging.ImageFormat -> unit
Public Sub Save (stream As Stream, format As ImageFormat)

Parameters

stream
Stream

De Stream locatie waar de afbeelding wordt opgeslagen.

format
ImageFormat

Een ImageFormat die de indeling van de opgeslagen afbeelding aangeeft.

Uitzonderingen

stream of format is null.

De afbeelding is opgeslagen met de verkeerde afbeeldingsindeling.

Opmerkingen

U moet voorkomen dat u een afbeelding opslaat in dezelfde stroom die is gebruikt om deze samen te stellen. Als u dit doet, kan de stroom beschadigd raken.

De afbeelding moet worden opgeslagen in de stroom op een offset van nul. Als er aanvullende gegevens naar de stroom zijn geschreven voordat de afbeelding wordt opgeslagen, worden de afbeeldingsgegevens in de stream beschadigd.

Van toepassing op

Save(String)

Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs
Bron:
Image.cs

Slaat dit Image op in het opgegeven bestand of de opgegeven stream.

public:
 void Save(System::String ^ filename);
public void Save(string filename);
member this.Save : string -> unit
Public Sub Save (filename As String)

Parameters

filename
String

Een tekenreeks met de naam van het bestand waarop u dit Imagewilt opslaan.

Uitzonderingen

filename is null.

De afbeelding is opgeslagen met de verkeerde afbeeldingsindeling.

– of –

De afbeelding is opgeslagen in hetzelfde bestand waaruit deze is gemaakt.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de Save methode aanroept. Dit voorbeeld is ontworpen voor gebruik met Windows Forms. Maak een formulier met een knop met de naam Button5. Plak de code in het formulier en koppel de methode aan de gebeurtenis van Click de knop.

private:
   void Button5_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      try
      {
         if ( image1 != nullptr )
         {
            image1->Save( "c:\\myBitmap.bmp" );
            Button5->Text = "Saved file.";
         }
      }
      catch ( Exception^ ) 
      {
         MessageBox::Show( "There was a problem saving the file."
         "Check the file permissions." );
      }
   }
private void Button5_Click(System.Object sender, System.EventArgs e)
{
    try
    {
        if (image1 != null)
        {
            image1.Save("c:\\myBitmap.bmp");
            Button5.Text = "Saved file.";
        }
    }
    catch(Exception)
    {
        MessageBox.Show("There was a problem saving the file." +
            "Check the file permissions.");
    }
}
Private Sub Button5_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button5.Click
    Try
        If (image1 IsNot Nothing) Then
            image1.Save("c:\myBitmap.bmp")
            Button5.Text = "Saved file."
        End If
    Catch ex As Exception
        MessageBox.Show("There was a problem saving the file." _
        & "Check the file permissions.")
    End Try

End Sub

Opmerkingen

Als er geen encoder bestaat voor de bestandsindeling van de afbeelding, wordt de PNG-encoder (Portable Network Graphics) gebruikt. Wanneer u de methode Save gebruikt om een afbeelding op te slaan als een Windows WMF-bestand (Metafile Format) of EMF-bestand (Enhanced Metafile Format), wordt het resulterende bestand opgeslagen als een PNG-bestand (Portable Network Graphics). Dit gedrag treedt op omdat het GDI+-onderdeel van het .NET Framework geen encoder heeft die u kunt gebruiken om bestanden op te slaan als .wmf- of .emf-bestanden.

Het opslaan van de afbeelding in hetzelfde bestand waaruit deze is samengesteld, is niet toegestaan en genereert een uitzondering.

Van toepassing op