Discussions on GFL SDK, the graphic library for reading and writing graphic files
Moderators: XnTriq , helmut , xnview
dominique
Posts: 72 Joined: Thu Nov 08, 2007 9:22 am
Post
by dominique » Wed Jul 01, 2009 1:27 pm
Using this code with v3.05 of gflsdk, I can't have correct information about dpi while saving image in JPEG
Code: Select all
mpBitmap->Xdpi = lMetaData->mXDpi;
mpBitmap->Ydpi = lMetaData->mYDpi;
I thought it worked in the version 2.90
Any information about this?
Thx in advance
Dom
dominique
Posts: 72 Joined: Thu Nov 08, 2007 9:22 am
Post
by dominique » Wed Jul 01, 2009 1:40 pm
Looking in the header, I can't find the information of resolution :
FFD8FFE1
Instead of :
FFD8FFE000104A46494600010201012C012C0000 FFE1
0x12C = 300
Do you miss something here ?
Dom
dominique
Posts: 72 Joined: Thu Nov 08, 2007 9:22 am
Post
by dominique » Wed Jul 01, 2009 3:58 pm
I found that if I use
Code: Select all
gflBitmapRemoveMetaData(mpBitmap);
gflBitmapSetEXIF2(mpBitmap, EXIFData2);
the resolution is not more present in the jpeg header.
Without this, resolution is present in the jpeg header.
Using this code with v 2.90 is ok
Something has changed in version 3.05
Dom
xnview
Author of XnView
Posts: 39863 Joined: Mon Oct 13, 2003 7:31 am
Location: France
Post
by xnview » Thu Jul 02, 2009 7:04 am
And only
Code: Select all
gflBitmapRemoveMetaData(mpBitmap);
??
Pierre.
dominique
Posts: 72 Joined: Thu Nov 08, 2007 9:22 am
Post
by dominique » Thu Jul 02, 2009 9:16 am
So it's not an exif problem but IPTC.
With the previous version of GFL I use to had IPTC data this way after saving JPEG image :
Code: Select all
gflSaveIPTC(mFileOut.c_str(), mIPTCData);
Using this the jpeg image lost resolution information in his header.
Perhaps there is an other way to had IPTC with 3.05 version?
Dom
dominique
Posts: 72 Joined: Thu Nov 08, 2007 9:22 am
Post
by dominique » Thu Jul 02, 2009 9:21 am
Ok, I use this after erasing all meta data :
Code: Select all
gflSetIPTCValue(mIPTCData, GFL_IPTC_PROGRAM, "My Software");
gflBitmapSetIPTC(mOriBitmap, mIPTCData);
That's work fine !
So perhaps there is something bad in
Code: Select all
gflSaveIPTC(mFileOut.c_str(), mIPTCData);
Dom
dominique
Posts: 72 Joined: Thu Nov 08, 2007 9:22 am
Post
by dominique » Thu Jul 02, 2009 11:52 am
Thanks for corrections !!!
Great job,
Dom