Page 1 of 1

Feature Request: gflLoadEXIF

Posted: Fri Mar 11, 2005 5:53 pm
by Ithier
You have a function to load IPTC data without loading the entire file (gflLoadIPTC), it would be great to have the same for EXIF data, something like: gflLoadEXIF.
This function is very useful in conjunction with the gflJpegLosslessTransform function. So first you determine how to rotate and then you rotate your image with loss.


Thank you very much in advance.
Keep up the good work Pierre!

Re: Feature Request: gflLoadEXIF

Posted: Mon Mar 14, 2005 1:29 pm
by xnview
Ithier wrote:You have a function to load IPTC data without loading the entire file (gflLoadIPTC), it would be great to have the same for EXIF data, something like: gflLoadEXIF.
This function is very useful in conjunction with the gflJpegLosslessTransform function. So first you determine how to rotate and then you rotate your image with loss.
You'll have it on next release.

Re: Feature Request: gflLoadEXIF

Posted: Mon Mar 14, 2005 2:23 pm
by Ithier
xnview wrote: You'll have it on next release.
Thank you very much, you are the best !! :P

Posted: Fri May 13, 2005 8:48 am
by kurka666
Hi

Just wanted to check the status. I will find a gflLoadEXIF function very useful! :-)

My application will load both IPTC and EXIF. Maybe a combined function will be even faster! (gflLoadIPTCandEXIF)

Henrik

Posted: Tue May 31, 2005 4:41 pm
by zapp
Yes, loading exif & iptc without loading bitmap is a great idea. When will the next release be? ;-)

ZZzz

Posted: Thu Jun 02, 2005 12:09 pm
by xnview
zapp wrote:Yes, loading exif & iptc without loading bitmap is a great idea. When will the next release be? ;-)
Yes, i'm late (with XnView), i'll release GFLSDK asap.

Posted: Tue Aug 09, 2005 11:34 am
by lazerfisk
Will this feature be available in gflax as well?

Cheers,
Christopher

Posted: Thu Aug 18, 2005 9:58 am
by xnview
lazerfisk wrote:Will this feature be available in gflax as well?
Currently there is only EXIFDateTaken, but you would like to retrieve all EXIF tags?

Posted: Thu Aug 18, 2005 10:03 am
by lazerfisk
xnview wrote:
lazerfisk wrote:Will this feature be available in gflax as well?
Currently there is only EXIFDateTaken, but you would like to retrieve all EXIF tags?
Yes :) What i would like is something similar to pure ASP EXIF except embedded in GflAx :)

Cheers,
Christopher

Posted: Thu Aug 18, 2005 10:08 am
by xnview
lazerfisk wrote:
xnview wrote:
lazerfisk wrote:Will this feature be available in gflax as well?
Currently there is only EXIFDateTaken, but you would like to retrieve all EXIF tags?
Yes :) What i would like is something similar to pure ASP EXIF except embedded in GflAx :)
Do you have an example script to show how it works?

Posted: Thu Aug 18, 2005 10:36 am
by lazerfisk
xnview wrote:
lazerfisk wrote:
xnview wrote: Currently there is only EXIFDateTaken, but you would like to retrieve all EXIF tags?
Yes :) What i would like is something similar to pure ASP EXIF except embedded in GflAx :)
Do you have an example script to show how it works?
well, Pure ASP EXIF is downloadable from that website. But, what i would like to see is the feature to retrieve EXIF data in a similar way that is demonstrated on that site. I guess the following should be in there:
  • Ability to get tag by index (for the purpose of enumerating)
  • Ability to get tag by hex tag id
  • Ability to get tag by name (i.e. get the tag based on what getExifName would return, the same thing but backwards)
  • getExifName() to return a friendly name of the tag (e.g. getExifDescription(&H9207) should return "Metering Mode")
  • getExifRaw() to return the raw value (e.g. getExifRaw(&H9207) should return "5")
  • getExifValue() to return the interpreted value (e.g. getExifValue(&H9207) should return "Multi-segment")
Perhaps you could group them in a sub-object?

Code: Select all

sMeteringMode = gfl.exif.getByName("Metering Mode").Value
sThirdValueRaw = gfl.exif.getByIndex(3).Raw
iValueCount = gfl.exif.count
The example code from the Pure ASP EXIF looks like this:

Code: Select all

Date Time: <%= getDateTime(IFDDirectory) %><br>
Exif Image Width: <%= GetExifByName(IFDDirectory, "Exif Image Width", false) %><br>
Exif Image Height: <%= GetExifByName(IFDDirectory, "Exif Image Height", false) %><br>
FStop: <%=getFStop(IFDDirectory)%><br>
Shutter: <%=getShutterSpeed(IFDDirectory, true)%>s<br>
Focal Length: <%=getFocalLength(IFDDirectory)%>mm<br>
<br>
<table border=1>
	<tr>
		<th nowrap>IFD #</td>
		<th nowrap>#</td>
		<th nowrap>Tag HEX</td>
		<th nowrap>Tag Name</td>
		<th nowrap>Format</td>
		<th nowrap>Size</td>
		<th nowrap>Offset</td>
		<th nowrap>Value</td>
		<th nowrap>Value Described</td>
	</tr>
<%
'show all tags in current images metadata
for x = 0 to ubound(IFDDirectory)
	response.write "<tr>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_IFD_No) & "</td>"
	response.write "<td>" & x & "</td>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_Tag_No) & "</td>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_Tag_Name) & "</td>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_Data_Format) & "</td>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_Components) & "</td>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_OffsetToValue) & "</td>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_Value) & "</td>"
	response.write "<td>" & IFDDirectory(x)(IFD_IDX_Value_Desc) & "</td></tr>"
next
But, i leave the implementation issues to you :) You have done such a great work with the rest of GflAx :)

Cheers,
Christopher