2009-08-13 143 views
0

有誰知道一個好的資源,將告訴我如何使用C++加載圖像並旋轉它?C++自旋圖像資源

我的意思是旋轉是做一個旋轉的圖像的實際動畫,而不是物理旋轉圖像並保存它。

如果我不清楚我在問什麼,請在downvoting之前要求澄清。

感謝

+0

你想獨立於平臺的解決方案? – 2009-08-13 21:05:27

+0

我正在使用Windows平臺。我對Mac或Linux一無所知。謝謝 – CodeLikeBeaker 2009-08-13 21:12:29

回答

6

我肯定會默認OpenGL的這種類型的任務,您可以將圖像加載到一個紋理,然後要麼在不同的角度重新繪製圖像,或更好,但你可以旋轉「相機」在OpenGL引擎中。有許多OpenGL教程,快速的谷歌搜索將爲您提供所需的一切。

+0

好的謝謝,我會檢查出OpenGL,並從那裏去。 – CodeLikeBeaker 2009-08-13 21:38:10

-1

我同意DeusAduro。 OpenGL是這樣做的好方法。

你也可以做到這一點與Qt的

+0

我不知道爲什麼一個人在這裏downvote,我在qt做了這樣的想法。我需要qt這樣的東西。無論如何,我建議openGL。我認爲這是一種奇怪的行爲。 – ufukgun 2009-08-14 07:02:35

-1

的「滾你自己的」解決方案是困難的。

我建議尋找WPF - 它可能在圖像控件中有一些不錯的選項。

+0

從C++使用WPF是太棒了:) – 2009-08-13 22:02:11

1

在Windows中使用GDI +,你可以顯示通過以下方式旋轉圖像:

Graphics graphics(GetSafeHwnd()); // initialize from window handle 
// You can construct Image objects from a variety of 
// file types including BMP, ICON, GIF, JPEG, Exif, PNG, TIFF, WMF, and EMF. 
Image image(L"someimage.bmp");  

graphics.RotateTransform(30.0f); // 30 - angle, in degrees. 
graphics.DrawImage(&image, 0, 0); // draw rotated image 

您可以閱讀here更詳細的解釋。


第二種解決方案是使用DirectX。你可以創建texture from file及其後的render它。這不是微不足道的解決方案,但它會使用硬件加速併爲您提供最佳性能。


在Windows 7上,可用的新API稱爲Direct2D。我還沒有使用它,但它看起來很有希望。

Direct2D爲Win32開發人員提供了以卓越的性能和視覺質量執行二維圖形渲染任務的能力。

+0

這是否足夠快看起來動畫? – 2009-08-13 21:54:55

+0

如果您使用緩存位圖和雙緩存,速度就夠快了。 – 2009-08-13 21:59:35