草庐IT

png_malloc

全部标签

c++ - 原始位图数据到 jpeg 或 png C++

我有bytearray,其中每三个字节描述1个像素(RGB)。任务是将其转换为jpeg或png。实际上,我正在使用Zint(用于生成条形码的开源库),它使用libpng生成图像文件并将其保存到文件系统,但在Zint中,除了生成图像之外,函数png_plot()还将其保存在磁盘上,这是不受欢迎的。因此我认为有两种方式:1.从位图bytearray到bmp->jpeg/png(使用其他一些库)2.写hook或者类似png_plot()的一些你能给我一些建议吗?谢谢。更新:为@peacemakerFILE*f;zint_symbol*my_symbol;my_symbol=ZBarcode_

c++ - 在 malloc_error_break 中设置断点以在 C++ 中进行调试

我正在编写一个接受2个命令行参数的程序:a和b分别。只要a都好尽快a>17.5程序抛出以下错误:释放对象的校验和不正确-对象可能在释放后被修改我已将问题缩小到以下代码:for(inta=0;aviTmp(iK-i);fill(viTmp.begin(),viTmp.end(),2);for(intb=0;b删除后一段代码,消除了错误。我也在使用valgrind来调试内存,但我还没有找到任何解决方案。这是valgrind报告的拷贝:Reporthostedinpastebin编辑我用调试标志编译了程序:g++-g-O0-fno-inlineprogram.cpp然后使用valgrind运

c++ - Visual Studio 2010 C++ : malloc()/HeapAlloc always allocates new page for even smallest alloc size

我有一个相当大的C/C++项目,我一直在试图找出它消耗过多内存的原因(通过任务管理器中的“工作集”判断)。我终于找到了奇怪的行为,即使是最小的malloc()请求,它也会分配一个全新的4k页面。像这样的代码for(intbla=0;bla这应该会增加区区10KB的内存消耗,最终会增加4MB,因为它分配了1000个4kB。真正令人沮丧的部分是我无法将其作为独立文件重现。仅包含上述代码的小型应用程序就可以正常工作。只有大项目才会表现出错误的行为。直接回答一些明显的建议:我正在引入与大项目相同的库,并确保编译标志相同"new"的行为方式相同在Debug和Release模式下都会发生我真的追踪

c++ - 一个简单的 PNG 包装器。有人可以分享一个片段吗?

我正在寻找一种将图像数据缓冲区放入PNG文件的方法,以及一种将PNG文件放入缓冲区的方法。我想做的只有这两件事。这将是一个使用png.h的非常简单的包装器。好吧,由于可怕的复杂libpngAPI,这并不完全简单,但它的概念是。我之前尝试过DevIL。它比libpng更容易使用。尽管如此,我还是有issues用它。此外,DevIL做得太多。我只需要基本的PNG格式支持,而不是其他20种格式。然后我找到thispage.我称赞PixelFairy和全能的Google为我提供了一个银盘上的实现......结果这搞砸了图像:在处理后的图像中,每条扫描线中的每四个像素都丢失了。通过阅读源代码,我

c++ - malloc 失败条件

我正在复习c,重做一些旧的练习,并在运行此代码段时得到一些不寻常的结果(我知道它泄漏但想了解系统允许多少..)#include#includeintmain(intargc,char*argv[]){void*page=0;intindex;index=0;while(1){page=malloc(1073741824);//1GBif(!page)break;++index;}printf("memoryfailedat%d\n",index);return0;}我实际上得到:memoryfailedat131070这表明它认为它分配了131070x1GB内存(大量泄漏)我之前知道m

c++ - 如何从 operator new 或 malloc 为 mremap 获取页对齐内存

有没有办法分配一block内存,使其起始地址与给定的页面大小对齐?请注意,我不想在分配block后计算对齐地址。原因是在某些时候我将不得不在block上调用mremap():mremap要求旧地址参数是页面对齐的。 最佳答案 mremap只能安全地用于由mmap分配的内存区域,这些内存区域本质上是页面对齐的。在其他任何事情上使用它都是危险的(正式的,未定义的行为)并且可能看起来有效但可能会以您不会立即看到的方式严重破坏事物。 关于c++-如何从operatornew或malloc为mre

c++ - C++ 中 SSE 的内存对齐,_aligned_malloc 等效?

我想知道如何将此C代码转换为C++以实现内存对齐。float*pResult=(float*)_aligned_malloc(length*sizeof(float),16);我看过here然后我试了这个float*pResult=(float*)__attribute__((aligned(16)));还有这个float*pResult=__attribute__((aligned(16)));但两者都给出了类似的错误。error:expectedprimary-expressionbefore'__attribute__'|error:expected','or';'before'

c++ - 在 C++ 中用 new/delete 替换 malloc/free

我只是想确定一下。这是我的代码int*Image=(int*)malloc(sizeof(int)*m_Width/2*m_Height);free(Image);如果我想使用new而不是malloc和free而不是delete。这是我写的int*Image=newint[m_Width/2*m_Height];delete[]Image;对吗? 最佳答案 从技术上讲,这是正确的。然而,这是我们正在谈论的C++,动态分配数组的C++方法是使用std:vector代替:std::vectorImage(m_Width/2*m_Heig

c++ - 使用 gil 读取 png 图像

boost::gil是否可以读取RGB图像信息,以便我可以将文件读入正确的rgbx_image_t?对于以下内容,我必须事先知道类型,这不是那么整洁。boost::gil::rgb8_image_tim;gil::png_read_image(m_filename,im); 最佳答案 你可以列出你想要尝试的类型,并使用any_image来保存类型删除的结果:typedefmpl::vectormy_img_types;any_imageruntime_image;png_read_image("input.png",runtime_

c# - 使用 PNG 格式

我希望在C++或C#中使用PNG格式。我找不到任何关于如何将PNG转换为表示图像颜色的字节/float的二维数组的文档。我要实现的目标:将Png加载到数组[Width*Height]在游戏中使用PNG作为纹理如果有人可以向我提供任何文档、源代码或C#/C++库/dll,那就太好了。最好是C++,并且不使用任何Windows特定的库。 最佳答案 Uselibpng,theofficialPNGlibrary.具体来说,thispage包含有关如何打开和阅读的所有信息。 关于c#-使用PNG