草庐IT

png_malloc

全部标签

c++ - 在加载和保存期间缺少 DirectX 中 PNG 纹理的某些颜色?

我使用标准的DirectX函数(如CreateTexture2D、D3DX11SaveTextureToFile和D3DX11CreateShaderResourceViewFromFile)加载PNG图像,在新创建的纹理上渲染它,然后比保存到文件。所有的纹理都是两种尺寸的力量。但在此过程中,我注意到PNG中的某些颜色有点损坏(与源纹理中的颜色相似但不相同)。透明度相同(它适用于0和100%透明度部分,但不适用于例如34%)。是否有一些大的颜色近似值或我做错了什么?如果是,我该如何解决?这是这两张图片(左边是来源:底部有一些不同的颜色和一些渐变透明度;右边是加载第一张图片并在新纹理上渲

c++ - malloc 和 allocate 有什么区别

我遇到了一些代码,它广泛使用了allocate。例如,char*recordDate=allocate(20)我以前从未使用过allocate,因此问题来了,malloc和allocate之间有什么区别?虽然我不清楚它的优势,但我可以说的一个区别是,malloc提供原始内存,而allocate似乎会提供原始内存,但我不必将指针强制转换为特定类型。 最佳答案 来自allocate文档:Allocatesn*sizeof(T)bytesofuninitializedstoragebycalling::operatornew(std::s

c++ - 使用 libpng 将 OpenGL 屏幕像素保存为 PNG

我一直在使用SOIL将图像保存为BMP,但事实证明SOIL(或更具体地说是stbi)可以保存~5MB图像(大约1366x768分辨率图像或更多),这非常疯狂。原始BMP保存代码(注意一切都在渲染函数中完成):uint8_t*pixels=newuint8_t[w*h*3];//copypixelsfromscreenglBindTexture(GL_TEXTURE_2D,screenTex);glCopyTexSubImage2D(GL_TEXTURE_2D,0,0,0,0,0,w,h);glPixelStorei(GL_PACK_ALIGNMENT,1);glReadPixels(0

c++ - tcmalloc:静态编译时如何覆盖我的 malloc 调用?

当我使用LD_PRELOAD=/usr/local/lib/libtcmalloc.so时,我对malloc的所有调用都变成了tcmalloc调用。但是,当我静态链接到libtcmalloc时,我发现直接调用malloc,除非我仍然使用LD_PRELOAD设置。那么我如何以我的mallocs挂接到tcmalloc的方式针对tcmalloc进行静态编译?注意事项:我使用了很多C++new等等,所以只需将malloc定义为tcmalloc行不通可能我必须使用malloc_hook自己,但我会我以为我可以让tcmalloc去做对我来说,因为它显然正在这样做动态链接时

c++ - 我什么时候应该使用_aligned_malloc()?

我一直在阅读遗留代码,其中包含自定义内存池系统,然后我发现该代码使用了_aligned_malloc。我想知道这个功能是什么,我什么时候必须使用它。谢谢大家。我确实阅读了MSDN,但我想要的是类似“想要特定对齐的原因的一个示例是在x86上将数据与SSE指令集一起使用,其中数据必须对齐到16的倍数”。我终于明白那些代码是什么意思了。再次感谢。 最佳答案 当内存分配的对齐对您很重要时,此函数很有用。对齐是指返回的指针的数值必须能被某个数整除,即。((unsignedint)ptr)%alignment的计算结果应为0。需要特定对齐的一个

c++ - 当使用 malloc 而不是 new 时,类成员会发生什么情况?

我正在为期末考试学习,我偶然发现了一个奇怪的问题,这是我们老师去年给一些可怜的人的考试的一部分。问题是这样的:Isthefollowingprogramcorrect,ornot?Ifitis,writedownwhattheprogramoutputs.Ifit'snot,writedownwhy.程序:#includeclasscls{intx;public:cls(){x=23;}intget_x(){returnx;}};intmain(){cls*p1,*p2;p1=newcls;p2=(cls*)malloc(sizeof(cls));intx=p1->get_x()+p2

c++ - 我应该如何在 C++ 中转换 malloc 的结果?

这个问题在这里已经有了答案:ShouldIusestatic_castorreinterpret_castwhencastingavoid*towhatever(8个答案)关闭9年前。请注意这个问题不是关于C中的malloc或C++中的mallocvsnew/smartpointers。如果我在C++中使用malloc,我应该使用哪种转换?以下所有工作。int*a=(int*)malloc(sizeof(int));int*b=static_cast(malloc(sizeof(int)));int*c=reinterpret_cast(malloc(sizeof(int)));实例:

c++ - LLDB:通过控制台为malloc_error_break设置断点

我在我的代码中遇到了一些与malloc相关的问题:malloc:***errorforobject0x103401e28:incorrectchecksumforfreedobject-objectwasprobablymodifiedafterbeingfreed.***setabreakpointinmalloc_error_breaktodebug我试过这样的事情:(lldb)breakpointsetmalloc_error_breakerror:invalidcombinationofoptionsforthegivencommand如何使用终端设置此断点?我在网上搜索过,只

c++ - 解释 Valgrind 的 trace-malloc 输出

Valgrind是一个出色的内存调试器,它有选项--trace-malloc=yes,它产生如下内容:--16301--malloc(8)=0x4EAD748--16301--free(0x4EAD748)--16301--free(0x4EAD498)--16301--malloc(21)=0x4EAD780--16301--malloc(8)=0x4EAD838--16301--free(0x4EAD6F8)--16301--calloc(1,88)=0x4EAD870--16301--realloc(0x0,160)malloc(160)=0x4EB1CF8--16301--re

c++ - 如何在 C++ 中手动读取 PNG 文件?

可移植网络图形概述任何给定PNG文件的总体布局如下所示:文件头:一个8字节的签名。block:从图像属性到实际图像本身的数据block。问题我想在不使用任何外部库的情况下使用C++读取PNG文件。我想这样做是为了更深入地了解PNG格式和C++编程语言。我开始使用fstream逐字节读取图像,但我无法通过任何PNG文件的header。我尝试使用read(char*,int)将字节放入char数组,但是read在header后的每个字节上都失败。如上所示,我认为我的程序总是在文件结束1A字节处被catch。我正在为Windows7和Linux机器开发Windows7。我的一些(旧)代码#i