Gambar::Save(IStream*,constCLSID*,constEncoderParameters*) metode (gdiplusheaders.h)
Metode Image::Save menyimpan gambar ini ke aliran.
Sintaks
Status Save(
[in] IStream *stream,
[in] const CLSID *clsidEncoder,
[in] const EncoderParameters *encoderParams
);
Parameter
[in] stream
Jenis: IStream*
Arahkan ke antarmuka IStream COM. Implementasi IStream harus mencakup metode Seek, Read, Write, dan Stat .
[in] clsidEncoder
Jenis: const CLSID*
Penunjuk ke CLSID yang menentukan encoder yang akan digunakan untuk menyimpan gambar.
[in] encoderParams
Jenis: const EncoderParameters*
Opsional. Penunjuk ke objek EncoderParameters yang menyimpan parameter yang digunakan oleh encoder. Nilai defaultnya adalah NULL.
Nilai kembali
Jenis: Status
Jika metode berhasil, metode mengembalikan Ok, yang merupakan elemen dari enumerasi Status .
Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .
Keterangan
Jangan menyimpan gambar ke aliran yang sama yang digunakan untuk membuat gambar. Melakukannya dapat merusak aliran.
Image image(myStream);
...
image.Save(myStream, ...); // Do not do this.
Contoh
Contoh berikut membuat dua objek Gambar : satu dibuat dari file JPEG dan satu dibuat dari file PNG. Kode ini membuat file gabungan dengan dua aliran dan menyimpan dua gambar ke aliran tersebut.
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;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP, Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | gdiplusheaders.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk