标签: libpng

cmake层次结构zlib,libpng和我自己的应用程序

我正在尝试为使用libpng的应用程序创建CMake层次结构.Libpng需要zlib.

由于CMakeLists.txt与zlib和libpng一起分发,我的第一个想法是制作以下结构:

/development
    CMakeLists.txt
    /zlib-1.2.5
        CMakeLists.txt <- provided by zlib
        -sources-
        -build of zlib?-
    /libpng154
        CMakeLists.txt <- provided by libpng
        -sources-
        -build of libpng?-
    /myapp
        CMakeLists.txt
        -sources-
    /build
        -build of myapp-
        -build of zlib?-
        -build of libpng?-
Run Code Online (Sandbox Code Playgroud)

...然后,在顶级CMakeLists.txt中,放置如下内容:

project(everything)
...
add_subdirectory(zlib-1.2.5)
add_subdirectory(libpng154)
add_subdirectory(myapp)
...
Run Code Online (Sandbox Code Playgroud)

但没有运气.libpng的CMakeLists.txt执行find_package(ZLIB ...),但它不知道在哪里查看.这可以通过将zlib"安装"到/ usr在Mac OS上解决.但这不适用于Windows.

所以我想我不会进入子目录.只需编译并构建zlib和libpng,然后在遍历我自己的应用程序之前执行find_package(PNG ...)(分别编译和构建zlib和libpng(通过提供的CMakeLists.txt),至少在Mac OS上运行,但再次,只因为zlib安装到/ usr).

project(everything)
...
find_package(PNG...)
add_subdirectory(myapp)
...
Run Code Online (Sandbox Code Playgroud)

没有运气,find_package(PNG ...)失败了.我不知道如何让find_package(PNG ...)知道在哪里寻找我刚建立的libpng库.例如,对于boost,您可以设置"BOOST_ROOT"变量.libpng有什么类似的吗?

亲切的问候,

丹尼尔德克斯

c++ zlib cmake libpng

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

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
查看次数

libpng 警告:忽略错误的自适应过滤器类型

我的应用程序被终止,并且日志:libpng警告:忽略错误的自适应过滤器类型。我想知道原因,以及解决办法。

warnings kill libpng

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

libpng 1.5.10错误:解除引用指向不完整类型的指针

png_read_info (png_ptr, info_ptr);
{ 
    png_byte color_type = info_ptr->color_type;
    png_byte bit_depth  = info_ptr->bit_depth;
    ...
Run Code Online (Sandbox Code Playgroud)

我得到的最后两行

错误:取消引用指向不完整类型的指针

怎么了?在libpng 1.4中,这总是好的.

c libpng

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

如何在Amazon EC2上安装支持PNG的GraphicsMagick?

如果您天真地按照GraphicsMagick网站上的步骤操作,在运行后./configure,您最终没有PNG支持:

checking for PNG support ...
checking png.h usability... no
checking png.h presence... no

PNG               --with-png=yes        no
Run Code Online (Sandbox Code Playgroud)

这使得一个非常无用的GraphicsMagick安装.

如何启用PNG支持?Libpng似乎已经安装,但未检测到:

> $ sudo yum install libpng
> Package 2:libpng-1.2.49-1.12.amzn1.x86_64 already installed and latest version
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 libpng graphicsmagick

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

libpng从内存缓冲区加载文件

我试过查看libpng文档,但没找到我要找的东西.

我有一个完全在内存缓冲区中的PNG文件,如何加载此文件(除了创建临时文件的明显解决方案)?

不确定它是否相关,但我使用ctypes从Python调用libpng.

libpng

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

libpng错误:PNG无符号整数超出范围

当我尝试从内存中读取PNG时,我遇到了这个时髦的错误:

libpng error:: PNG unsigned integer out of range
Run Code Online (Sandbox Code Playgroud)

此错误是由

png_read_info(png_ptr,info_ptr);
Run Code Online (Sandbox Code Playgroud)

哪个使用以下处理程序

static void ReadDataFromBuffer(png_structp png_ptr, png_bytep outBytes,
    png_size_t byteCountToRead){
        PNGDataPtr dataptr=(PNGDataPtr)png_get_io_ptr(png_ptr);
        png_uint_32 i;
        cout<<byteCountToRead<<endl;
        cout<<&outBytes<<endl;
        cout<<dataptr->len<<endl;
        cout<<dataptr->p<<endl;

        if(byteCountToRead>dataptr->len){
            png_error(png_ptr,"EOF");
            return;
        }

        for(i=0;i<byteCountToRead;i++){

            outBytes[i]=dataptr->p[i];
        }
        dataptr->p+=byteCountToRead;
        dataptr->len-=byteCountToRead;
        png_uint_32 a = png_get_uint_32(outBytes);
        cout<<a<<" "<<PNG_UINT_31_MAX<<endl;

}
Run Code Online (Sandbox Code Playgroud)

通过一些密集的搜索,我发现错误由pgnrutil.c中的以下代码调用:

png_uint_32 /* PRIVATE */
png_get_uint_31(png_structp png_ptr, png_bytep buf)
{
    png_uint_32 i = png_get_uint_32(buf);
    if (i > PNG_UINT_31_MAX)
    png_error(png_ptr, "PNG unsigned integer out of range.\n");
    return (i);
}
Run Code Online (Sandbox Code Playgroud)

所以我检查了png_get_uint_32(outBytes)的值,​​确实高于PNG_UINT_31_MAX,230374511.

我该如何解决?

编辑:

关于PNGDataPtr的一些说明:

typedef struct{
    png_bytep p; …
Run Code Online (Sandbox Code Playgroud)

c++ libpng

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

CentOS上的Node.js imagemin

我试图使用Node.js imagemin压缩我的服务器上的很多图像.我喜欢使用imagemin因为我知道如何将它指向特定的目录.

我正在使用CentOS 6,当我运行我的文件时,我收到错误:

node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/vendor/pngquant:/lib64/libc.so.6:未找到版本`GLIBC_2.14'

另外,当我安装了imageminnpm install imagemin,我得到一个错误,上面写着:

错误:pngquant无法构建,请确保已安装libpng-dev

关于我能做些什么来解决这个问题的任何想法?

javascript libpng node.js centos6 imagemin

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

libpng错误:CgBI:未处理的关键块xcode 7.3

切换到Xcode 7.3,并在同一个项目上运行项目后,我得到以下错误 -

libpng error: CgBI: unhandled critical chunk
Run Code Online (Sandbox Code Playgroud)

我已将Compress PNG Files项目目标的构建设置设置为NO.

我清理并重建了项目,但仍然没有工作,并给出了上述错误.

欢迎提出任何解决上述问题的建议/帮助.提前致谢.

xcode image libpng ios cocos2d-x

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

如何在 Mac 上安装 libpng-dev

我正在尝试在我的 Mac 上安装该reticulate软件包,它取决于该png软件包,而该软件包又取决于libpng. 我安装了libpngbrew png由于缺少以下内容而导致包失败libpng-config

/bin/sh: libpng-config: command not found
Run Code Online (Sandbox Code Playgroud)

不过我有这个/opt/homebrew/bin/libpng-config

which libpng-config
/opt/homebrew/bin/libpng-config
Run Code Online (Sandbox Code Playgroud)

发现这个指定了需要libpng-dev,但我不知道如何在我的 Mac 上安装它。任何帮助表示赞赏。

macos png r libpng reticulate

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

标签 统计

libpng ×10

c++ ×3

c ×2

png ×2

amazon-ec2 ×1

centos6 ×1

cmake ×1

cocos2d-x ×1

graphicsmagick ×1

image ×1

imagemin ×1

ios ×1

javascript ×1

kill ×1

macos ×1

node.js ×1

opencl ×1

r ×1

reticulate ×1

warnings ×1

xcode ×1

zlib ×1