问题标签 [stb-image]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
117 浏览

c++ - 从 stbi_loadf 返回初始化 3D 浮点数组?

我是 C++ 的新手。我有一个非常简单的程序,我正在研究并遇到困难。我正在使用从磁盘stb_image加载。png file

我想把它放在内存中,这样像素 (x,y) 就位于p[y*width + x]. 不知道如何初始化数组。

好奇应该在大括号中初始化什么。任何人都可以称重吗?

谢谢

0 投票
2 回答
537 浏览

c++ - 通过光线追踪制作 JPG(在一个周末进行光线追踪)

我正在关注周末的 Ray Tracing 一书,其中作者使用纯 C++ 生成了一个小型 Ray Tracer,结果是一个PPM 图像

作者的代码
作者的代码

生成此 PPM 图像。
生成此 PPM 图像。

所以作者建议作为一个练习,让程序通过stb_image库生成一个JPG 图像。到目前为止,我尝试像这样更改原始代码:

这是结果:这就是结果

如您所见,我的结果略有不同,我不知道为什么。主要问题是:

  1. 黑色显示在屏幕的左上角,并且通常颜色不会以从左到右、从上到下的正确顺序显示。

  2. 图像被“分割”成两半,结果实际上是作者的原始图像,但成对生成????

可能我对STB_IMAGE_WRITE应该使用的方式有一些误解,所以如果有使用这个库的人可以告诉我发生了什么,我将不胜感激。

编辑 1我实施了@1201ProgramAlarm 在评论中建议的更改,加上我更改struct RGB data[nx][ny]struct RGB data[ny][nx]所以现在的结果是这样的

0 投票
1 回答
41 浏览

vulkan - 从图像文件中获取缩略图

我正在开发一个应用程序,我想显示大量图像,用户可以从中选择以全分辨率查看。图像的子集将在任何时间点对用户可见,其数量由用户使用控件控制,该控件将增加或减小缩略图大小。

目前,如果加载的图像过多,应用程序自然会耗尽 GPU 内存。

我正在考虑几种可能的方法,但我不确定哪种方法最好:

  1. 将完整图像加载到内存中,使用 CPU 将图像大小调整为缩略图,然后将其发送到 GPU
  2. 将完整图像加载到内存中,将其发送到 GPU 并在 GPU 上使用 vkCmdBlitImage 将其调整为缩略图大小
  3. 从应该嵌入jpeg的文件中加载缩略图(?)?(不知道如何获取缩略图)

解决这个问题的最佳方法是什么?

0 投票
0 回答
365 浏览

c++ - 将 stb_image 添加到 Visual Studio 项目时出现 C2014 错误

我计划使用 Sean Barrett 的库stb_image将图像加载到图形应用程序中。下面存储库中的 Lib 代码:

https://github.com/nothings/stb/blob/master/stb_image.h

尽管在将标头 stb_image.h 添加到您的项目中时,它的文档对我来说简短而清晰,然后:

做这个:

当我在 VS2013 上构建它时,编译器会抛出以下错误:

一开始以为是行尾问题(Win32 LF,Linux CR LF),但好像不是。

欢迎任何可能导致此错误的提示!

0 投票
1 回答
975 浏览

c++ - 为 opengl 纹理加载图像时,stb_image 不会垂直翻转

我尝试加载的图像在渲染时旋转了 90 度。我正在使用“加载时垂直翻转图像”,但是当纹理被渲染时,图像被旋转了 90 度。

我试图更改索引和 tex 坐标,但没有用。

纹理应显示为图像,而不是旋转 90 度。图片:https ://opengameart.org/sites/default/files/oga-textures/brick_base.png

0 投票
1 回答
242 浏览

c++ - 如果现代opengl中有多个纹理,则没有纹理

我正在使用带有 SDL2 和 glew 的 C++ 和 OpenGL 4.6。我有一个类纹理:

如果我创建一个纹理,则纹理显示:

但是,如果我创建两个纹理,我只会得到黑屏:

这应该有效。我在互联网上搜索了 2 个小时,但我似乎找不到为什么这不起作用的原因。你们能帮帮我吗?

0 投票
0 回答
396 浏览

c++ - 如何修复“图像(由 stb_image 加载)占用过多内存”

我目前正在学习cg,我必须加载一些纹理。我尝试使用 stb_images 并且效果很好,但是当我在内存中加载图像时,它占用了太多空间。

我使用的是一个小的 jpg(512*512, 154kb),但是如果我加载它 10 次,它将占用大约 12 MB 的内存。(我使用 Visual Studio 诊断工具检查进程内存)

我怎样才能消除这种浪费的内存使用量。

0 投票
1 回答
2086 浏览

c++ - 如何使用 stb_image 将像素颜色数据写入 bmp 图像文件?

我已经打开了 bmp 文件(一个通道灰度)并将每个像素颜色作为十六进制存储在一个新行中。在对数据进行一些处理之后(不是这个问题的重点),我需要从我的数据中导出一个 bmp 图像。如何加载文本文件(数据)并使用stb_image_write

像素到图像:

图像到像素:

0 投票
2 回答
6654 浏览

c++ - stb 图像写入问题

我正在尝试使用 stb_image_write 将一个简单的图像文件写入磁盘。我使用最简单的测试用例:128 x 128 像素的 RGB 图像。

我在网上找到了这个例子,那个家伙似乎说它工作得很好,而且它看起来和我写了 2 个小时的完全一样:

结果应该是一个漂亮的颜色渐变,但我能得到的只是一个带有一些垂直红、绿、蓝和黑线的有效文件。图像的尺寸还可以。我真的在这里找不到解决方案。我在 linux Jessie 上。可能存在“字节顺序”问题或类似的问题吗?

0 投票
1 回答
140 浏览

c++ - stbi_load 文件名到 const char*

我正在尝试加载一些具有stbi_load以下功能的图像:

问题是我有这样的文件名:

但是函数需要第一个参数是const char*。我尝试投射,但它没有加载图像。我正在使用 Visual Studio 2017。