如何裁剪加载了SOIL的图像

Rafutk

我试图裁剪通过SOIL库加载的图像,然后再将其用作纹理。

  • 因此,首先,我如何加载图像,然后将其转换为纹理?
  • 其次,如何修改(裁剪等)加载的图像?

这是我想做的:

unsigned char * img = SOIL_load_image("img.png", &w, &h, &ch, SOIL_LOAD_RGBA);
// crop img ...
// cast it into GLuint texture ...
雅科夫·加尔卡(Yakov Galka)

您可以通过使用以下glPixelStorei功能来加载图像的一部分

// the location and size of the region to crop, in pixels:
int cropx = ..., cropy = ..., cropw = ..., croph = ...;

// tell OpenGL where to start reading the data:
glPixelStorei(GL_UNPACK_SKIP_PIXELS, cropx);
glPixelStorei(GL_UNPACK_SKIP_ROWS, cropy);

// tell OpenGL how many pixels are in a row of the full image:
glPixelStorei(GL_UNPACK_ROW_LENGTH, w);

// load the data to a previously created texture
glTextureSubImage2D(texure, 0, 0, 0, cropw, croph, GL_SRGB8_ALPHA8, GL_UNSIGNED_BYTE, img);

这是来自OpenGL规范的图表,可能会有所帮助: 子图图

编辑:如果您使用的是较旧的OpenGL(大于4.5),则将glTextureSubImage2D调用替换为

glTexImage2D(GL_TEXTURE_2D, 0, GL_SRGB8_ALPHA8, cropw, croph, 0, GL_RGBA, GL_UNSIGNED_BYTE, img);

确保在此调用之前创建并绑定纹理(与通常创建纹理的方式相同)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用mogrify裁剪图像

来自分类Dev

如何从相机裁剪图像

来自分类Dev

如何安装SOIL(简单OpenGL图像加载器)?

来自分类Dev

如何在Titanium中以圆形裁剪图像?

来自分类Dev

如何裁剪不拉伸背景图像

来自分类Dev

如何使用ImageMagick提高裁剪图像的性能?

来自分类Dev

如何在css中进行图像裁剪

来自分类Dev

如何在Android中裁剪图像?

来自分类Dev

如何动态裁剪图像中的数字?

来自分类Dev

如何裁剪iOS中圆圈内的图像

来自分类Dev

如何缩放,旋转和裁剪图像

来自分类Dev

图像翻译被裁剪(如何防止)

来自分类Dev

画布缩放时如何裁剪图像

来自分类Dev

如何使用drawImage()裁剪图像?

来自分类Dev

如何借助模板坐标裁剪图像

来自分类Dev

如何使用jcrop裁剪不同尺寸的图像

来自分类Dev

使用BitmapFactory从流/文件加载裁剪的图像

来自分类Dev

如何从Instagram API获取裁剪的图像?

来自分类Dev

如何从图像中裁剪出最大的矩形

来自分类Dev

如何使用AsciiDoctor裁剪/裁剪图像

来自分类Dev

如何从图像中裁剪边框/空白?

来自分类Dev

如何调整裁剪图像的尺寸?

来自分类Dev

如何裁剪图像宽度svg?

来自分类Dev

OpenGL-SOIL无法加载JPG或PNG图像

来自分类Dev

如何裁剪图像并设置其与原始图像的裁剪范围

来自分类Dev

如何裁剪图像并保存?

来自分类Dev

如何使用CSS裁剪图像

来自分类Dev

使用SOIL加载jpeg图像时OpenGL处理缓慢

来自分类Dev

在 NiFi 中如何裁剪图像?