问题标签 [tga]

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 投票
3 回答
2725 浏览

c++ - C++ OpenGL TGA 加载失败

我一直在学习有关加载 TGA 文件的基本 OpenGL 教程,以用作 3d 对象上的纹理。我已经能够从 TGA 标头加载数据,但是当我尝试加载实际的图像数据时,它失败了。我不确定哪里出了问题。这是我的纹理加载类:

头文件:

这是cpp中的加载TGA函数:

它似乎加载了一些数据,但它不断返回它失败。任何有关为什么的帮助将不胜感激。如果它有点罗嗦,我很抱歉,但我不确定什么是重要的或不重要的。

更新:所以,我只是重写了函数。我使用的 ifsteam 似乎是问题的原因。具体来说,它会尝试加载比我输入的数据字节多得多的数据。我不知道行为的原因,但我在下面列出了我的功能代码。感谢大家的帮助。

0 投票
1 回答
205 浏览

c++ - 如何判断 Targa 是否来自 Photoshop?

我在尝试编写*.tga文件阅读器时遇到了问题。对于 32 位 targas,photoshop 用 255 填充 alpha 通道,这仍然是标准的,并且可以工作,但在 16 位 targas 中,photoshop 用零填充 alpha 位。

有什么方法可以告诉我 Targa 来自 Photoshop,所以我可以用 1 填充 alpha 位?

0 投票
3 回答
2486 浏览

c++ - 加载 Targa 文件 C++ 的问题

正如标题所示,我在加载 .tga 文件时遇到了问题。我一直在使用作为参考,据我所知(除了使用 c++ 函数而不是 c 函数)我正在做同样的事情。我确实得到了纹理,但它应该是乱码版本,我不确定为什么。请原谅所有的错误,我只是想让它工作。

标题:

价格:

0 投票
2 回答
1371 浏览

android - Android NDK 指针算法

我正在尝试在 Android NDK 中加载 TGA 文件。

我使用 AssetManager 打开文件,将 TGA 文件的全部内容读入内存缓冲区,然后尝试从中提取像素数据。

我可以毫无问题地读取文件的 TGA 标头部分,但是当我尝试将内存指针前进到 TGA 标头时,应用程序崩溃了。如果我不尝试推进内存指针,它不会崩溃。

Android NDK 对指针运算是否有某种限制?

这是代码:

此函数打开资产文件:

在我的纹理类中,我尝试加载它:

如果我用下面的行替换上面的行(即使它不正确),应用程序就会运行,尽管很明显纹理被弄乱了。

有人有想法么?

谢谢。

0 投票
1 回答
253 浏览

direct3d - FrontBuffer 有 alpha 值吗?

我试图使用 GetFrontBufferData 方法保存 .tga 图像,但是 alpha 值丢失了。它们完全是一个。我可以从 RenderTarget 或 BackBuffer 获得正确的 alpha 值,但不是 rgb 值不正确。即使是现在的场景也可以立即显示,backbuffer 似乎仍然比 frontbuffer 暗。
现在我得到 2 个问题:
Q1:FrontBuffer 有 alpha 值吗?
Q2:当你尝试渲染透明的东西时,后台缓冲区和前台缓冲区的数据有什么区别?

0 投票
0 回答
344 浏览

php - php 打开tga并保存tga

我正在尝试编辑 TGA(32 位)。目标是我打开文件,添加一些文本并将其再次保存为 TGA(32 位)。

我设法使用一些脚本打开了一个 TGA 文件,但似乎我需要 imagick 将它也保存为一个 TGA。(但使用imagick我无法打开TGA)。

有人有保存 32 位 tga 文件的示例吗?为了打开,我也可以使用 .jpg 文件

谢谢

沃特

0 投票
1 回答
538 浏览

c++ - 在 OpenGl 中读取 TGA 文件以创建 3d 用户

我有一个 TGA 文件和一个库,它已经拥有阅读 TGA 和使用它们所需的一切。

该类有一个名为pixels()的方法,它返回一个指针,该指针指向像素存储为RGBRGBRGB的内存区域...

我的问题是,如何获取像素值?

因为如果我做这样的事情:

它给了我大概的地址。

我在这个网站上找到了这段代码:

我认为它对我很有用,但是我怎样才能告诉程序从我的 img 中读取呢?

0 投票
1 回答
1943 浏览

c++ - 显示 Targa/TGA 的问题

我的 Targa Reader 出现了非常轻微的问题。1 个像素关闭,2 个额外像素为黑色:S

我正在加载的 24 位 targa 文件如下所示: 在此处输入图像描述

注意左上角的白色像素。左上角的第一个像素是白色的。

但是当我将文件像素保存为 24 位位图时,它看起来像: 在此处输入图像描述

请注意,白色像素不知何故位于右上角以及其上方的 2 个黑色像素。

我一生都无法弄清楚为什么除此之外其他一切都是正确的。这让我很困扰,因为我非常接近能够加载 TGA。

知道我下面的代码有什么问题吗?我正在为使用 Photoshop 创建的 16、24 和 32 位 TGA 文件编写 TGA 阅读器。

0 投票
2 回答
1881 浏览

c++ - 加载 24 位 TGA

我写了一个 TGA 加载器来加载 TGA 文件。它可以很好地加载和保存 32 位 TGA 文件,但是在加载和保存 24 位时,它就搞砸了。

来自 Photoshop 的 TGA 24 位文件示例:

在此处输入图像描述

我的输出:

在此处输入图像描述

知道有什么问题吗?我用与我的位图加载器相同的方式进行填充,它可以工作,但 TGA 没有.. :S 下面的代码可以编译和加载 TGA,以防万一有人想要测试它。

0 投票
2 回答
544 浏览

c++ - c++ tga 用一些分辨率解析不正确的颜色/失真

我想就我的 .tga 文件格式解析问题获得一些帮助。我有代码,我使用了很长时间:

但是对于某些图像分辨率(主要是奇数和非 POT 分辨率),它偶尔会失败。它会导致图像失真(带有对角线图案)或颜色错误。上次我遇到它 - 这是 9x9 24bpp 图像显示奇怪的颜色。

我在windows上(所以它意味着little-endian),用opengl渲染(我正在考虑alpha通道的存在,当用glTexImage2D传递图像数据时)。我正在用 Photoshop 保存我的图像,而不是设置 RLE 标志。此代码始终读取正确的图像分辨率和颜色深度。

造成问题的图像示例:http: //pastie.org/private/p81wbh5sb6coldspln6mw

加载有问题的图像后,此代码:

输出这个:

所以我猜它确实读取了正确的数据。这把我们带到了opengl;

纹理压缩代码被省略,因为它对该纹理无效。