旋轉、反映和扭曲影像
您可以藉由指定原始影像左上角、右上角和左下角的目的地點來旋轉、反映和扭曲影像。 三個目的地點會決定將原始矩形影像對應至平行投影的模擬轉換。 (原始影像的右下角會對應至平行投影的第四個角落,這是從三個指定的目的地點計算而來。)
例如,假設原始影像是左上角 (0、0) 、右上角 (100、0) ,以及左下角 (0、50) 。 現在假設我們將這三個點對應至目的地點,如下所示。
原始點 | 目的地點 |
---|---|
左上方 (0,0) | (200, 20) |
右上方 (100、0) | (110, 100) |
左下 (0、50) | (250, 30) |
下圖顯示原始影像和對應至平行投影的影像。 原始影像已扭曲、反映、旋轉及翻譯。 沿著原始影像上邊緣的 X 軸會對應至透過 (200、20) 20、20 (110、100) 執行的線條。 沿著原始影像左邊緣的 Y 軸會對應至透過 (200、 20) 和 (250, 30) 的線條。
下列範例會產生上圖所示的影像。
Point destinationPoints[] = {
Point(200, 20), // destination for upper-left point of original
Point(110, 100), // destination for upper-right point of original
Point(250, 30)}; // destination for lower-left point of original
Image image(L"Stripes.bmp");
// Draw the image unaltered with its upper-left corner at (0, 0).
graphics.DrawImage(&image, 0, 0);
// Draw the image mapped to the parallelogram.
graphics.DrawImage(&image, destinationPoints, 3);
下圖顯示套用至相片影像的類似轉換。
下圖顯示套用至中繼檔的類似轉換。