Encoder.SaveFlag Campo

Definição

Representa um objeto Encoder que é inicializado com o identificador global exclusivo para a categoria de parâmetro salvar sinalizador.

public: static initonly System::Drawing::Imaging::Encoder ^ SaveFlag;
public static readonly System.Drawing.Imaging.Encoder SaveFlag;
 staticval mutable SaveFlag : System.Drawing.Imaging.Encoder
Public Shared ReadOnly SaveFlag As Encoder 

Valor do campo

Exemplos

O exemplo a seguir cria três Bitmap objetos: um de um arquivo BMP, um de um arquivo JPEG e outro de um arquivo PNG. O código salva todas as três imagens em um único arquivo TIFF de vários quadros.

#using <System.Drawing.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;
static ImageCodecInfo^ GetEncoderInfo( String^ mimeType );
int main()
{
   Bitmap^ multi;
   Bitmap^ page2;
   Bitmap^ page3;
   ImageCodecInfo^ myImageCodecInfo;
   Encoder^ myEncoder;
   EncoderParameter^ myEncoderParameter;
   EncoderParameters^ myEncoderParameters;
   
   // Create three Bitmap objects.
   multi = gcnew Bitmap( "Shapes.bmp" );
   page2 = gcnew Bitmap( "Iron.jpg" );
   page3 = gcnew Bitmap( "House.png" );
   
   // Get an ImageCodecInfo object that represents the TIFF codec.
   myImageCodecInfo = GetEncoderInfo( "image/tiff" );
   
   // Create an Encoder object based on the GUID
   // for the SaveFlag parameter category.
   myEncoder = Encoder::SaveFlag;
   
   // 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 first page (frame).
   myEncoderParameter = gcnew EncoderParameter( myEncoder,(__int64)EncoderValue::MultiFrame );
   myEncoderParameters->Param[ 0 ] = myEncoderParameter;
   multi->Save( "Multiframe.tiff", myImageCodecInfo, myEncoderParameters );
   
   // Save the second page (frame).
   myEncoderParameter = gcnew EncoderParameter( myEncoder,(__int64)EncoderValue::FrameDimensionPage );
   myEncoderParameters->Param[ 0 ] = myEncoderParameter;
   multi->SaveAdd( page2, myEncoderParameters );
   
   // Save the third page (frame).
   myEncoderParameter = gcnew EncoderParameter( myEncoder,(__int64)EncoderValue::FrameDimensionPage );
   myEncoderParameters->Param[ 0 ] = myEncoderParameter;
   multi->SaveAdd( page3, myEncoderParameters );
   
   // Close the multiple-frame file.
   myEncoderParameter = gcnew EncoderParameter( myEncoder,(__int64)EncoderValue::Flush );
   myEncoderParameters->Param[ 0 ] = myEncoderParameter;
   multi->SaveAdd( myEncoderParameters );
}

static ImageCodecInfo^ GetEncoderInfo( String^ mimeType )
{
   int j;
   array<ImageCodecInfo^>^encoders;
   encoders = ImageCodecInfo::GetImageEncoders();
   for ( j = 0; j < encoders->Length; ++j )
   {
      if ( encoders[ j ]->MimeType == mimeType )
            return encoders[ j ];

   }
   return nullptr;
}
using System;
using System.Drawing;
using System.Drawing.Imaging;
class Example_MultiFrame
{
    public static void Main()
    {
        Bitmap multi;
        Bitmap page2;
        Bitmap page3;
        ImageCodecInfo myImageCodecInfo;
        Encoder myEncoder;
        EncoderParameter myEncoderParameter;
        EncoderParameters myEncoderParameters;
                     
        // Create three Bitmap objects.
        multi = new Bitmap("Shapes.bmp");
        page2 = new Bitmap("Iron.jpg");
        page3 = new Bitmap("House.png");
                     
        // Get an ImageCodecInfo object that represents the TIFF codec.
        myImageCodecInfo = GetEncoderInfo("image/tiff");
                     
        // Create an Encoder object based on the GUID
        // for the SaveFlag parameter category.
        myEncoder = Encoder.SaveFlag;
                     
        // 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 first page (frame).
        myEncoderParameter = new EncoderParameter(
            myEncoder,
            (long)EncoderValue.MultiFrame);
        myEncoderParameters.Param[0] = myEncoderParameter;
        multi.Save("Multiframe.tiff", myImageCodecInfo, myEncoderParameters);
                     
        // Save the second page (frame).
        myEncoderParameter = new EncoderParameter(
            myEncoder,
            (long)EncoderValue.FrameDimensionPage);
        myEncoderParameters.Param[0] = myEncoderParameter;
        multi.SaveAdd(page2, myEncoderParameters);
                     
        // Save the third page (frame).
        myEncoderParameter = new EncoderParameter(
            myEncoder,
            (long)EncoderValue.FrameDimensionPage);
        myEncoderParameters.Param[0] = myEncoderParameter;
        multi.SaveAdd(page3, myEncoderParameters);
                     
        // Close the multiple-frame file.
        myEncoderParameter = new EncoderParameter(
            myEncoder,
            (long)EncoderValue.Flush);
        myEncoderParameters.Param[0] = myEncoderParameter;
        multi.SaveAdd(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_MultiFrame
    
    Public Shared Sub Main() 
        Dim multi As Bitmap
        Dim page2 As Bitmap
        Dim page3 As Bitmap
        Dim myImageCodecInfo As ImageCodecInfo
        Dim myEncoder As Encoder
        Dim myEncoderParameter As EncoderParameter
        Dim myEncoderParameters As EncoderParameters
        
        ' Create three Bitmap objects.
        multi = New Bitmap("Shapes.bmp")
        page2 = New Bitmap("Iron.jpg")
        page3 = New Bitmap("House.png")
        
        ' Get an ImageCodecInfo object that represents the TIFF codec.
        myImageCodecInfo = GetEncoderInfo("image/tiff")
        
        ' Create an Encoder object based on the GUID
        ' for the SaveFlag parameter category.
        myEncoder = Encoder.SaveFlag
        
        ' 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 first page (frame).
        myEncoderParameter = New EncoderParameter(myEncoder, Fix(EncoderValue.MultiFrame))
        myEncoderParameters.Param(0) = myEncoderParameter
        multi.Save("Multiframe.tiff", myImageCodecInfo, myEncoderParameters)
        
        ' Save the second page (frame).
        myEncoderParameter = New EncoderParameter(myEncoder, Fix(EncoderValue.FrameDimensionPage))
        myEncoderParameters.Param(0) = myEncoderParameter
        multi.SaveAdd(page2, myEncoderParameters)
        
        ' Save the third page (frame).
        myEncoderParameter = New EncoderParameter(myEncoder, Fix(EncoderValue.FrameDimensionPage))
        myEncoderParameters.Param(0) = myEncoderParameter
        multi.SaveAdd(page3, myEncoderParameters)
        
        ' Close the multiple-frame file.
        myEncoderParameter = New EncoderParameter(myEncoder, Fix(EncoderValue.Flush))
        myEncoderParameters.Param(0) = myEncoderParameter
        multi.SaveAdd(myEncoderParameters)
    
    End Sub
    
    Private Shared Function GetEncoderInfo(ByVal mimeType As String) As ImageCodecInfo 
        Dim j As Integer
        Dim encoders() As ImageCodecInfo
        encoders = ImageCodecInfo.GetImageEncoders()
        
        j = 0
        While j < encoders.Length
            If encoders(j).MimeType = mimeType Then
                Return encoders(j)
            End If
            j += 1
        End While
        Return Nothing
    
    End Function 'GetEncoderInfo
End Class

Comentários

Quando você passa um parâmetro para um codificador de imagem, o parâmetro é encapsulado em um EncoderParameter objeto . Um dos campos do EncoderParameter objeto é um GUID que especifica a categoria do parâmetro . Use os campos estáticos da Encoder classe para recuperar um Encoder que contém parâmetros da categoria desejada.

Os codificadores de imagem integrados ao GDI+ recebem parâmetros que pertencem a várias categorias. A tabela a seguir lista todas as categorias e o GUID associado a cada categoria.

ChrominanceTable f2e455dc-09b3-4316-8260-676ada32481c

ColorDepth 66087055-ad66-4c7c-9a18-38a2310b8337

Compression e09d739d-ccd4-44ee-8eba-3fbf8be4fc58

LuminanceTable edb33bce-0266-4a77-b904-27216099e717

Quality 1d5be4b5-fa4a-452d-9cdd-5db35105e7eb

RenderMethod 6d42c53a-229a-4825-8bb7-5c99e2b9a8b8

SaveFlag 292266fc-ac40-47bf-8cfc-a85b89a655de

ScanMethod 3a4e2661-3109-4e56-8536-42c156e7dcfa

Transformation 8d0eb2d1-a58e-4ea8-aa14-108074b7b6f9

Version 24d18c76-814a-41a4-bf53-1c219cccf797

Aplica-se a

Confira também