從多畫面格影像複製個別畫面

下列範例會從多框架 TIFF 檔案擷取個別畫面格。 建立 TIFF 檔案時,個別框架會新增至頁面維度, (請參閱 建立和儲存Multiple-Frame影像) 。 程式碼會顯示四個頁面的每一個,並將每個頁面儲存到個別的 PNG 磁片檔案。

程式碼會從多框架 TIFF 檔案建構 Image 物件。 若要擷取個別框架 (頁) ,程式碼會呼叫該Image物件的Image::SelectActiveFrame方法。 傳遞至 Image::SelectActiveFrame 方法的第一個引數是 GUID 的位址,指定框架先前新增至多框架 TIFF 檔案的維度。 GUID FrameDimensionPage 定義于 Gdiplusimaging.h 中。 在該標頭檔中定義的其他 GUID 是 FrameDimensionTime 和 FrameDimensionResolution。 傳遞至 Image::SelectActiveFrame 方法的第二個引數是所需頁面的以零起始的索引。

程式碼依賴協助程式函式 GetEncoderClsid,其顯示在 擷取編碼器的類別識別碼中。

GUID   pageGuid = FrameDimensionPage;
CLSID  encoderClsid;
Image  multi(L"Multiframe.tif");

// Get the CLSID of the PNG encoder.
GetEncoderClsid(L"image/png", &encoderClsid);

// Display and save the first page (index 0).
multi.SelectActiveFrame(&pageGuid, 0);
graphics.DrawImage(&multi, 10, 10);
multi.Save(L"Page0.png", &encoderClsid, NULL);

// Display and save the second page.
multi.SelectActiveFrame(&pageGuid, 1);
graphics.DrawImage(&multi, 200, 10);
multi.Save(L"Page1.png", &encoderClsid, NULL);

// Display and save the third page.
multi.SelectActiveFrame(&pageGuid, 2);
graphics.DrawImage(&multi, 10, 150);
multi.Save(L"Page2.png", &encoderClsid, NULL);

// Display and save the fourth page.
multi.SelectActiveFrame(&pageGuid, 3);
graphics.DrawImage(&multi, 200, 150);
multi.Save(L"Page3.png", &encoderClsid, NULL);

下圖顯示上述程式碼所顯示的個別頁面。

圖例顯示幾何圖形、色彩相片、單色相片,以及不同的幾何圖形