小编Jon*_*ett的帖子

libpng png_set_add_alpha | png_set_filler错误:顺序行溢出

我正在尝试使用C读取PNG文件以与OpenCL一起使用.OpenCL不支持24位RGB图像,因此我需要将数据从RGB扩展到RGBA.我使用的PNG都是24位的,因此可以避免头痛.

我试图使用png_set_filler和png_set_add_alpha,我认为它们大致完全相同以解决问题,但它们都会导致此错误:

libpng error: sequential row overflow
Run Code Online (Sandbox Code Playgroud)

这是完整的功能:

int LoadPNG24(unsigned char ** pixelBuffer, const char *filename, unsigned int *width, unsigned int *height) {
    png_byte header[8];

    //open file as binary
    FILE *fp = fopen(filename, "rb");
    if (!fp) {
        return TEXTURE_LOAD_ERROR;
    }

    //read the header
    fread(header, 1, 8, fp);

    //test if png
    int is_png = !png_sig_cmp(header, 0, 8);
    if (!is_png) {
        fclose(fp);
        return TEXTURE_LOAD_ERROR;
    }

    //create png struct
    png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
    if (!png_ptr) {
        fclose(fp);
        return (TEXTURE_LOAD_ERROR);
    } …
Run Code Online (Sandbox Code Playgroud)

c c++ png opencl libpng

6
推荐指数
1
解决办法
1849
查看次数

Automake Libtool'没有制定目标的规则'

我一直在尝试构建GLTools库,它将OpenGL SuperBible附带到带有automake的libtool库中.

我已经设置了autoconf和automake但是当涉及到实际构建库时,我得到:

$ make
make: *** No rule to make target `GLBatch.lo', needed by `libgltools.la'.  Stop.
Run Code Online (Sandbox Code Playgroud)

我已经搜索了谷歌,因为我的理智会让我无所事事,我是汽车制造新手所以我不太确定要搜索什么.我确定这是一个小错误,或者我错过了一些基本的东西.

这是我的Makefile.am:

ACLOCAL_AMFLAGS = -I m4

lib_LTLIBRARIES = libgltools.la
libgltools_la_SOURCES = GLBatch.cpp GLShaderManager.cpp GLTriangeBatch.cpp GLTools.cpp math3d.cpp glew.c
#libgltools_la_CFLAGS = 
libgltools_la_LIBADD = -lX11 -lglut -lGL -lGLU -lm

include_HEADERS = GLBatchBase.h GLBatch.h GLFrame.h GLFrustum.h GLGeometryTransform.h GLMatrixStack.h GLShaderManager.h GLTools.h GLTriangleBatch.h math3d.h StopWatch.h GL/glew.h GL/glxew.h GL/wglew.h

EXTRA_DIST = autogen.sh
Run Code Online (Sandbox Code Playgroud)

而且我的configure.ac如果重要:

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script. …
Run Code Online (Sandbox Code Playgroud)

c c++ automake autoconf libtool

4
推荐指数
1
解决办法
8193
查看次数

标签 统计

c ×2

c++ ×2

autoconf ×1

automake ×1

libpng ×1

libtool ×1

opencl ×1

png ×1