【问题标题】:Visualizing a 2D GSL matrix in SDL 2.0在 SDL 2.0 中可视化 2D GSL 矩阵
【发布时间】:2015-03-17 14:33:16
【问题描述】:

我有一个 2D GSL 矩阵,其中填充了实数非负值。

有谁知道在 SDL 2.0 中将该矩阵可视化为灰度图像的简单方法?

【问题讨论】:

  • 您目前的方法有什么问题?
  • @user694733:我发现了一个名为 SDL_CreateRGBSurfaceFrom 的函数,我猜想在将它的最后 4 个参数设置为 0xFF0000 后可以将其用于我的目的。但是,问题是首先我的数据作为非负双精度数组存储在 gsl 矩阵中,我不知道如何将其传递给上述函数的第一个参数。二、如何设置深度和间距? (第 4 个和第 5 个参数)
  • 我不认为你可以直接从双打创建表面。您需要先将这些值转换为整数。 Depth and pitch seem to be dependent on what pixel format you do the conversion to.

标签: c image sdl-2 grayscale gsl


【解决方案1】:

您不能直接在 SDL 中绘制整数/双精度数。
您需要先将它们转换为字符。
绘制文本的一种简单方法是使用 SDL_ttf 库加载 True Type 字体。
您必须加载字体来呈现字符串。
然后使用字符串和字体创建渲染表面。
然后从表面创建纹理。
最后渲染纹理,您将拥有 .
假设您了解 SDL 的基础知识,代码如下所示

char* text = yourIntegerConvertedIntoCString;  
TTF_Font* font = TTF_OpenFont( path, ptsize );
SDL_Surface* surface = TTF_RenderText_Solid( font,  text, color );  
SDL_Texture* texture = SDL_CreateTextureFromSurface( renderer, surface );
SDL_FreeSurface( textSurface );

然后像处理其他纹理一样正常渲染纹理。 更多here

【讨论】:

  • 我不明白为什么我需要 True Type Fonts 来可视化 2D 矩阵:s 你的意思是矩阵中的每个值都会映射到某个字母吗?我真的很困惑
猜你喜欢
  • 2014-03-24
  • 2012-12-09
  • 1970-01-01
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多