SDL2入门(六)实现texture的截减和缩放

 时间:2026-02-14 00:58:31

1、利用了第三课的代码先显示了image.png图片的原始大小,运行结果如图。

SDL2入门(六)实现texture的截减和缩放

SDL2入门(六)实现texture的截减和缩放

SDL2入门(六)实现texture的截减和缩放

2、texture的截减:

现在只需修改代码的两处地方,如图红色标记。

因为图片image.png中的四个圆一样大小,图片长:400,图片宽:400。而SDL_Rendercopy中的第一个&box是对texture的截取范围,第二个&box是显示坐标和大小,所以运行结果只显示红色的圆。

你可以试试单独显示其他圆。

SDL2入门(六)实现texture的截减和缩放

SDL2入门(六)实现texture的截减和缩放

3、texture的缩放:

例如放大图片image.png。

接着我也是修改了两个地方,如下图的红色标记。

我让图片显示大小为原来的两倍,所以box.w和box.h扩大了一倍。

运行结果如图。

SDL2入门(六)实现texture的截减和缩放

SDL2入门(六)实现texture的截减和缩放

4、代码:

#include <SDL2/SDL.h>

#include <SDL2/SDL_image.h>

int main(int argc,char**argv)

{

SDL_Init(SDL_INIT_VIDEO);

SDL_Window*window=SDL_CreateWindow("texture的截减和缩放", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 720, 1280, SDL_WINDOW_SHOWN);

SDL_Renderer*renderer=SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

SDL_RenderClear(renderer);

SDL_Surface*surface=IMG_Load("./resource/image.png");

SDL_Rect box={0, 0, surface->w*2, surface->h*2};

SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer, surface);

SDL_RenderCopy(renderer, texture, NULL, &box);

SDL_RenderPresent(renderer);

SDL_Delay(6000);

SDL_FreeSurface(surface);

SDL_DestroyTexture(texture);

SDL_DestroyRenderer(renderer);

SDL_DestroyWindow(window);

SDL_Quit();

}

  • 一坡三档挡车栏的工作原理
  • 霞浦二月份天气及穿衣指南
  • 怎样用Photoshop给图片去色
  • 大众点评如何进行信息纠错
  • 激战2怎样做周边新事件任务
  • 热门搜索
    我国十大旅游胜地 崆峒山旅游 大连旅游景点地图 东莞有哪些旅游景点 成都西岭雪山旅游攻略 四川宜宾旅游景点 宁波东钱湖旅游攻略 江苏舜天海外旅游有限公司 云南香格里拉旅游攻略 5月19日旅游日