Image.Save Image.Save Image.Save Image.Save Method

定義

このイメージを、指定した形式で指定したストリームに保存します。Saves this image to the specified stream in the specified format.

オーバーロード

Save(String, ImageCodecInfo, EncoderParameters) Save(String, ImageCodecInfo, EncoderParameters) Save(String, ImageCodecInfo, EncoderParameters) Save(String, ImageCodecInfo, EncoderParameters)

指定したエンコーダー パラメーターとイメージ エンコーダー パラメーターを使用して、指定したファイルにこの Image を保存します。Saves this Image to the specified file, with the specified encoder and image-encoder parameters.

Save(Stream, ImageCodecInfo, EncoderParameters) Save(Stream, ImageCodecInfo, EncoderParameters) Save(Stream, ImageCodecInfo, EncoderParameters)

指定したエンコーダー パラメーターおよびイメージ エンコーダー パラメーターを使用して、このイメージを指定したストリームに保存します。Saves this image to the specified stream, with the specified encoder and image encoder parameters.

Save(String, ImageFormat) Save(String, ImageFormat) Save(String, ImageFormat) Save(String, ImageFormat)

この Image を、指定した形式で指定したファイルに保存します。Saves this Image to the specified file in the specified format.

Save(Stream, ImageFormat) Save(Stream, ImageFormat) Save(Stream, ImageFormat)

このイメージを、指定した形式で指定したストリームに保存します。Saves this image to the specified stream in the specified format.

Save(String) Save(String) Save(String) Save(String)

この Image を指定したファイルまたはストリームに保存します。Saves this Image to the specified file or stream.

Save(String, ImageCodecInfo, EncoderParameters) Save(String, ImageCodecInfo, EncoderParameters) Save(String, ImageCodecInfo, EncoderParameters) Save(String, ImageCodecInfo, EncoderParameters)

指定したエンコーダー パラメーターとイメージ エンコーダー パラメーターを使用して、指定したファイルにこの Image を保存します。Saves this Image to the specified file, with the specified encoder and image-encoder parameters.

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);
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)

パラメーター

filename
String String String String

この Image の保存先ファイルの名前を格納している文字列。A string that contains the name of the file to which to save this Image.

例外

filename または encodernull. です。filename or encoder is null.

このイメージは、誤ったイメージ形式で保存されています。The image was saved with the wrong image format.

または-or- このイメージは、イメージの作成元と同じファイルに保存されています。The image was saved to the same file it was created from.

次の例では、作成、 Bitmap BMP ファイルからのオブジェクト。The following example creates a Bitmap object from a BMP file. コードでは、ビットマップをそれぞれ別々 の品質レベルを 3 つの JPEG ファイルに保存します。The code saves the bitmap to three JPEG files, each with a different quality level.

#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
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 'Main

    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 'Example_SetJPEGQuality

注釈

構築された同じファイルにイメージを保存しては許可されていません、例外をスローします。Saving the image to the same file it was constructed from is not allowed and throws an exception.

こちらもご覧ください

Save(Stream, ImageCodecInfo, EncoderParameters) Save(Stream, ImageCodecInfo, EncoderParameters) Save(Stream, ImageCodecInfo, EncoderParameters)

指定したエンコーダー パラメーターおよびイメージ エンコーダー パラメーターを使用して、このイメージを指定したストリームに保存します。Saves this image to the specified stream, with the specified encoder and image encoder parameters.

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

パラメーター

stream
Stream Stream Stream Stream

イメージが保存される StreamThe Stream where the image will be saved.

encoderParams
EncoderParameters EncoderParameters EncoderParameters EncoderParameters

イメージ エンコーダーによって使用されるパラメーターを指定する EncoderParametersAn EncoderParameters that specifies parameters used by the image encoder.

例外

このイメージは、誤ったイメージ形式で保存されています。The image was saved with the wrong image format.

注釈

イメージの作成に使用された同じストリームには、イメージを保存できません。Do not save an image to the same stream that was used to construct the image. そうと、ストリームが破損する可能性があります。Doing so might damage the stream.

イメージは、オフセット 0 でストリームに保存する必要があります。The image must be saved to the stream at an offset of zero. その他のデータは、イメージを保存する前に、ストリームに書き込まれたが、ストリーム内のイメージ データが破損します。If any additional data has been written to the stream before saving the image, the image data in the stream will be corrupted.

Save(String, ImageFormat) Save(String, ImageFormat) Save(String, ImageFormat) Save(String, ImageFormat)

この Image を、指定した形式で指定したファイルに保存します。Saves this Image to the specified file in the specified format.

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)

パラメーター

filename
String String String String

この Image の保存先ファイルの名前を格納している文字列。A string that contains the name of the file to which to save this Image.

例外

filename または formatnull. です。filename or format is null.

このイメージは、誤ったイメージ形式で保存されています。The image was saved with the wrong image format.

または-or- このイメージは、イメージの作成元と同じファイルに保存されています。The image was saved to the same file it was created from.

次のコード例は、型からビットマップを作成する方法と使用方法を示します、Saveメソッド。The following code example demonstrates how to construct a bitmap from a type, and how to use the Save method. この例を実行するには、Windows フォームにコードを貼り付けます。To run this example, paste the code into a Windows Form. フォームの処理Paintイベント、および呼び出し、ConstructFromResourceSaveAsGifを渡してメソッドeとして PaintEventArgsHandle the form's Paint event, and call the ConstructFromResourceSaveAsGif method, passing e as 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

Save(Stream, ImageFormat) Save(Stream, ImageFormat) Save(Stream, ImageFormat)

このイメージを、指定した形式で指定したストリームに保存します。Saves this image to the specified stream in the specified format.

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

パラメーター

stream
Stream Stream Stream Stream

イメージが保存される StreamThe Stream where the image will be saved.

format
ImageFormat ImageFormat ImageFormat ImageFormat

保存するイメージの形式を指定する ImageFormatAn ImageFormat that specifies the format of the saved image.

例外

stream または formatnull です。stream or format is null.

このイメージは、誤ったイメージ形式で保存されています。The image was saved with the wrong image format

注釈

イメージの構築に使用された同じストリームに保存を避ける必要があります。You should avoid saving an image to the same stream that was used to construct it. そうと、ストリームが破損する可能性があります。Doing so might damage the stream.

イメージは、オフセット 0 でストリームに保存する必要があります。The image must be saved to the stream at an offset of zero. その他のデータは、イメージを保存する前に、ストリームに書き込まれたが、ストリーム内のイメージ データが破損します。If any additional data has been written to the stream before saving the image, the image data in the stream will be corrupted.

Save(String) Save(String) Save(String) Save(String)

この Image を指定したファイルまたはストリームに保存します。Saves this Image to the specified file or stream.

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

パラメーター

filename
String String String String

この Image の保存先ファイルの名前を格納している文字列。A string that contains the name of the file to which to save this Image.

例外

このイメージは、誤ったイメージ形式で保存されています。The image was saved with the wrong image format.

または-or- このイメージは、イメージの作成元と同じファイルに保存されています。The image was saved to the same file it was created from.

次のコード例を呼び出す方法を示します、Saveメソッド。The following code example demonstrates how to call the Save method. この例は、Windows フォームで使用する設計されています。This example is designed to be used with Windows Forms. という名前のボタンを含むフォームを作成するButton5します。Create a form that contains a button named Button5. フォームにコードを貼り付けます、ボタンのメソッドを関連付けるClickイベント。Paste the code into the form, and associate the method with the button's Click event.

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

注釈

イメージのファイル形式のエンコーダーが存在しない場合は、ポータブル ネットワーク グラフィックス (PNG) エンコーダーが使用されます。If no encoder exists for the file format of the image, the Portable Network Graphics (PNG) encoder is used. 使用すると、Saveグラフィック イメージを Windows メタファイル形式 (WMF) または拡張メタファイル形式 (EMF) ファイルで、結果として得られるファイルとして保存するメソッドは、ポータブル ネットワーク グラフィックス (PNG) ファイルとして保存されます。When you use the Save method to save a graphic image as a Windows Metafile Format (WMF) or Enhanced Metafile Format (EMF) file, the resulting file is saved as a Portable Network Graphics (PNG) file. この問題の原因、GDI+GDI+のコンポーネントである、.NET Framework.NET Frameworkエンコーダーを使用できるフォームのファイルとしてファイルを保存することはありません。This behavior occurs because the GDI+GDI+ component of the .NET Framework.NET Framework does not have an encoder that you can use to save files as .wmf or .emf files.

構築された同じファイルにイメージを保存しては許可されていません、例外をスローします。Saving the image to the same file it was constructed from is not allowed and throws an exception.

適用対象