Image ::Save(IStream*,constCLSID*,constEncoderParameters*) method (gdiplusheaders.h)
La méthode Image ::Save enregistre cette image dans un flux.
Syntaxe
Status Save(
[in] IStream *stream,
[in] const CLSID *clsidEncoder,
[in] const EncoderParameters *encoderParams
);
Paramètres
[in] stream
Type : IStream*
Pointeur vers une interface COM IStream . L’implémentation d’IStream doit inclure les méthodes Seek, Read, Write et Stat .
[in] clsidEncoder
Type : const CLSID*
Pointeur vers un CLSID qui spécifie l’encodeur à utiliser pour enregistrer l’image.
[in] encoderParams
Type : const EncoderParameters*
facultatif. Pointeur vers un objet EncoderParameters qui contient les paramètres utilisés par l’encodeur. La valeur par défaut est NULL.
Valeur retournée
Type : État
Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .
Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .
Remarques
N’enregistrez pas une image dans le même flux que celui utilisé pour construire l’image. Cela risque d’endommager le flux.
Image image(myStream);
...
image.Save(myStream, ...); // Do not do this.
Exemples
L’exemple suivant crée deux objets Image : l’un construit à partir d’un fichier JPEG et l’autre à partir d’un fichier PNG. Le code crée un fichier composé avec deux flux et enregistre les deux images dans ces flux.
Status MakeCompoundFile()
{
IStorage* pIStorage = NULL;
IStream* pIStream1 = NULL;
IStream* pIStream2 = NULL;
HRESULT hr;
Status stat = Ok;
// Create two Image objects from existing files.
Image image1(L"Crayons.jpg");
Image image2(L"Mosaic.png");
hr = CoInitialize(NULL);
if(FAILED(hr))
goto Exit;
// Create a compound file object, and get
// a pointer to its IStorage interface.
hr = StgCreateDocfile(
L"CompoundFile.cmp",
STGM_READWRITE|STGM_CREATE|STGM_SHARE_EXCLUSIVE,
0,
&pIStorage);
if(FAILED(hr))
goto Exit;
// Create a stream in the compound file.
hr = pIStorage->CreateStream(
L"StreamImage1",
STGM_READWRITE|STGM_SHARE_EXCLUSIVE,
0,
0,
&pIStream1);
if(FAILED(hr))
goto Exit;
// Create a second stream in the compound file.
hr = pIStorage->CreateStream(
L"StreamImage2",
STGM_READWRITE|STGM_SHARE_EXCLUSIVE,
0,
0,
&pIStream2);
if(FAILED(hr))
goto Exit;
// Get the class identifier for the JPEG encoder.
CLSID jpgClsid;
GetEncoderClsid(L"image/jpeg", &jpgClsid);
// Get the class identifier for the PNG encoder.
CLSID pngClsid;
GetEncoderClsid(L"image/png", &pngClsid);
// Save image1 as a stream in the compound file.
stat = image1.Save(pIStream1, &jpgClsid);
if(stat != Ok)
goto Exit;
// Save image2 as a stream in the compound file.
stat = image2.Save(pIStream2, &pngClsid);
Exit:
if(pIStream1)
pIStream1->Release();
if(pIStream2)
pIStream2->Release();
if(pIStorage)
pIStorage->Release();
if(stat != Ok || FAILED(hr))
return GenericError;
return Ok;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP, Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | gdiplusheaders.h (inclure Gdiplus.h) |
Bibliothèque | Gdiplus.lib |
DLL | Gdiplus.dll |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour