Encoder.SaveFlag Pole
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Encoder Reprezentuje obiekt zainicjowany za pomocą globalnie unikatowego identyfikatora kategorii parametrów flagi zapisywania.
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
Wartość pola
Przykłady
Poniższy przykład tworzy trzy Bitmap obiekty: jeden z pliku BMP, jeden z pliku JPEG i jeden z pliku PNG. Kod zapisuje wszystkie trzy obrazy w jednym pliku TIFF z wieloma ramkami.
#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
Uwagi
Po przekazaniu parametru do kodera obrazu parametr jest hermetyzowany w EncoderParameter obiekcie. Jednym z pól EncoderParameter obiektu jest identyfikator GUID określający kategorię parametru. Użyj pól statycznych Encoder klasy, aby pobrać element Encoder zawierający parametry żądanej kategorii.
Kodery obrazów wbudowane w interfejs GDI+ odbierają parametry należące do kilku kategorii. W poniższej tabeli wymieniono wszystkie kategorie i identyfikator GUID skojarzony z każdą kategorią.
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