我正在爲我的CS課做一個遊戲,我在網上找到的精靈太小了。您如何「拉伸」位圖...使用SDL使它們更大? (我需要增加50%的尺寸,所有尺寸相同。)示例代碼片段將不勝感激。如何在C和SDL中拉伸位圖?
0
A
回答
0
您將使用專爲此任務設計的軟件獲得更好的效果。一個不錯的選擇是ImageMagick。它可以從命令行或編程使用。
例如,在命令行中,你只需要輸入:
convert sprite.bmp -resize 150% bigsprite.bmp
如果出於某種奇怪的原因,你要編寫自己的雙線性縮放,this guy looks like he knows what he is doing.
-1
你試過了嗎?
SDL_Rect src, dest;
src.x = 0;
src.y = 0;
src.w = image->w;
src.h = image->h;
dest.x = 100;
dest.y = 100;
dest.w = image->w*1.5;
dest.h = image->h*1.5;
SDL_BlitSurface(image, &src, screen, &dest);
-1
1
此問題未指定SDL版本,即使SDL2在寫入問題時不可用,SDL2答案也會在此處添加完整性。
與SDL1.2不同,可以使用API方法SDL_RenderCopyEx
在SDL2中進行縮放。除了基本的SDL2庫之外,不需要額外的庫。
int SDL_RenderCopyEx(SDL_Renderer* renderer,
SDL_Texture* texture,
const SDL_Rect* srcrect,
const SDL_Rect* dstrect,
const double angle,
const SDL_Point* center,
const SDL_RendererFlip flip)
通過設置dstrect
的大小,可以將紋理縮放爲整數個像素。也可以同時旋轉和翻轉紋理。
參考:https://wiki.libsdl.org/SDL_RenderCopyEx
像往常一樣創建紋理:
surface = IMG_Load(filePath);
texture = SDL_CreateTextureFromSurface(renderer, surface);
當它的時間來呈現它,調用SDL_RenderCopyEx
代替SDL_RenderCopy
相關問題
- 1. 在TImageControl中拉伸位圖
- 2. Android位圖拉伸?
- 3. C#如何從拉伸的位圖/ picturebox中獲取像素
- 4. 如何使用StretchBlt拉伸位圖?
- 5. Android位圖拉伸/捏
- 6. 如何在Matlab中拉伸圖像
- 7. 如何在Firemonkey中拉伸圖像?
- 8. 如何在ImageView中拉伸圖像?
- 9. 在特定角落拉伸位圖
- 10. Supersized - 如何拉伸圖像?
- 11. 如何拉伸圖像
- 12. 如何拉伸SVG圖像?
- 13. 圖片在Safari和Chrome中拉伸
- 14. 如何在IE(CSS)中拉伸和居中圖像?
- 15. 在Java中拉伸圖像
- 16. 在ASP.NET中拉伸圖像
- 17. Flexslider和拉伸圖像
- 18. 將位圖繪製爲MainScreen背景。如何拉伸圖像?
- 19. 如何定位圖像以便與背景圖像拉伸
- 20. 拉伸圖像
- 21. 拉伸圖像
- 22. Android:拉伸位圖到多邊形
- 23. 如何使拉伸在iOS
- 24. 位圖不會在SDL
- 25. 在cell.background視圖中拉伸圖像
- 26. 在桌面視圖中拉伸圖像
- 27. Borland C++拉伸TAnimate
- 28. 如何拉伸點?
- 29. StageWebView - 如何防止通過drawViewPortToBitmapData獲取位圖的拉伸?
- 30. 如何在谷歌地圖api v3中拉伸圖標
Thankyou,我非常感謝幫助以及更多信息的鏈接。 – Fobia 2010-03-08 05:29:12