避免自動調整來改善效能

如果您只將影像的左上角傳遞至 DrawImage 方法,Windows GDI+ 可能會調整影像,進而降低效能。

下列 DrawImage 方法呼叫會指定 (50,30) 但未指定目的地矩形的左上角:

graphics.DrawImage(&image, 50, 30);  // upper-left corner at (50, 30)

雖然這是 最簡單版本的 DrawImage 方法,但就必要的引數數目而言,這不一定最有效率。 如果目前顯示裝置上每英吋的點數與建立影像之裝置上每英吋的點數不同,GDI+ 會縮放影像,使目前顯示裝置上的實體大小盡可能接近其建立所在裝置上的實體大小。

如果您想要防止這類縮放,請將目的地矩形的寬度和高度傳遞至 DrawImage 方法。 下列範例會繪製相同的影像兩次。 在第一個案例中,不會指定目的矩形的寬度和高度,而且會自動縮放影像。 第二個案例中,以圖元為單位測量的寬度和高度 () 目的矩形,會指定為與原始影像的寬度和高度相同。

Image image(L"Texture.jpg");
graphics.DrawImage(&image, 10, 10);
graphics.DrawImage(&image, 120, 10, image.GetWidth(), image.GetHeight());

下圖顯示轉譯兩次的影像。

視窗的螢幕擷取畫面,其中包含不同縮放比例的兩個影像版本