Click here to Skip to main content
11,496,146 members (1,590 online)
The site is currently in read-only mode for maintenance. Posting of new items will be available again shortly.
See more: C++ graphics image
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 14:09pm
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.
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
0 Dnyaneshwar@Pune 692
1 RyanDev 230
2 CHill60 208
3 Sascha Lefèvre 195
4 Sergey Alexandrovich Kryukov 124
0 Sergey Alexandrovich Kryukov 10,401
1 OriginalGriff 8,910
2 Sascha Lefèvre 3,899
3 Maciej Los 3,422
4 Richard Deeming 2,600

Advertise | Privacy | Mobile
Web03 | 2.8.150520.1 | Last Updated 16 Feb 2012
Copyright © CodeProject, 1999-2015
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