Click here to Skip to main content
13,147,591 members (30,613 online)
Rate this:
Please Sign up or sign in to vote.
See more:
I want to load a png image into an array. I was told to download the CImg library.
The problem is that it uses the pngLib which I don't know how to link.
I downloaded some files from the libpng homepage, but adding the directory to additional include directories, the h files to the project and copying the zlib1.dll to the exe directory is not enough.

I get an error when I try to use the class:

myFloatImg (300,200);
string testFilename="testImage.png";
myFloatImg.load (filename.c_str());

the error:
c:\...\cimg.h(34670): error C3861: 'png_set_expand_gray_1_2_4_to_8': identifier not found

I guess it's a call to a function from pngLib
What should I do?
*openCV is not an option

Posted 13-Feb-12 13:09pm
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

The issue is not a library linking issue.
You're probably missing some header file (#include) or are not using a namespace name (using namespace).

What are you trying to do with the image?
You could try to use GDI+.
GDI+ has several classes like Image, Graphics etc. that can do a lot of image manipulation and it supports PNG too.
Rate this: bad
Please Sign up or sign in to vote.

Solution 2

I should have link the objs of pngLib and zlib in additional dependences.
They should be added there as "pnglib.lib, zlib.lib"

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web03 | 2.8.170915.1 | Last Updated 16 Feb 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100