抓取jpg Exif資訊 |
尚未結案
|
liming
一般會員 發表:10 回覆:6 積分:3 註冊:2002-08-20 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: 請問一下BCB該怎抓取jpg的Exif資訊~~~ 3Q~~liming您好: Exif規格 http://www.exif.org/specifications.html 方法一: EXIF Tag Parsing Library Source 範例 http://sourceforge.net/project/showfiles.php?group_id=12272&release_id=132198 方法二: 試試這個範例吧! 資料來源:http://www.smalleranimals.com/isource/isourcesample_v2_2.htm Get EXIF data from a JPG EXIF data is stored in the JPGs created by most digital cameras. It contains information about the camera, the environment when the image was taken, the date, time, etc.. UINT32 w,h,d; // get the dimensions - we'll we really don't care about the dims. // we just want to force a JPG marker read and this is the quickest way // to do it. HISSRC hSrc = ISOpenFileSource( pFilename ); ISGetJPGDims( hSrc, &w, &h, &d, NULL); ISCloseSource( hSrc ); // loop over all JPEG_APPx markers int ct=ISGetJPGInputMarkerCount(); for (int i=0; i < ct; i++) { // get a JPG marker from ImgSoruce HGLOBAL hData = NULL; UINT32 len, type; ISGetJPGInputMarker(i, &hData, &len, &type); // only interested in JPEG_APP1 (#225) if (type!=225) { GlobalFree(hData); continue; } else { // start the EXIF parser HGLOBAL hEXIF = ISEXIFInit((BYTE *)hData, len); if (hEXIF!=NULL) { // get string with tag ID #271 (camera model) // look in all subsections (1 | 2 | 4 | 8 = 15) HGLOBAL hStr = NULL; UINT32 uStrLen; ISEXIFGetString(hEXIF, 272, 15, &hStr, &uStrLen); if (hStr!=NULL) { // got it! TRACE("model = %s\n", (char *)hStr); GlobalFree(hStr); } // try the thumbnail HGLOBAL hThumbnail = NULL; UINT32 uTNLen = 0; if (ISEXIFGetThumbnail(hEXIF, &hThumbnail, &uTNLen)==IS_ERR_OK) { // there is a thumbnail. // what format is it? int iFmt = 0; HGLOBAL hStr = NULL; UINT32 uStrLen; ISEXIFGetString(hEXIF, 259, 8, &hStr, &uStrLen); if (hStr!=NULL) { // got it! TRACE("fmt = %s\n", (char *)hStr); iFmt = atoi((char *)hStr); GlobalFree(hStr); } if (iFmt==6) // 6 = JPG. 1 = TIFF, 0 = RGB, but most are JPG { // convet that to RGB HISSRC hSrc = ISOpenMemorySource((BYTE *)hThumbnail, uTNLen); HGLOBAL hImg = ISReadJPG(hSrc, &w, &h, 24); ISCloseSource(hSrc); if (hImg) { // draw it CDC *pDC = GetDC(); ISDrawRGB( pDC->m_hDC, (BYTE *)hImg, w, h, 0, 0, w, h, NULL ); ReleaseDC(pDC); GlobalFree(hImg); } } // clean up GlobalFree(hThumbnail); } // clean up ISEXIFDestroy(hEXIF); } } GlobalFree(hData); }Delphi.Ktop風紀小隊---[ 發問前請先找找舊文章 ]--- |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
a small class to read EXIF data from JPEG images By Davide Pizzolato
資料來源:http://www.codeproject.com/useritems/cexif.asp
Download source files - 8.13 Kb Download demo project - 26.7 Kb
Introduction Cexif is a small class to read the exif data stored in JPEG images, normally generated by digital cameras. The code is based on Jhead, written by Matthias Wandel. Jhead offers a lot of switches to parse an image with EXIF tags, but it's plain C. I simply rearranged the functions and the global variables into a simple class. Another useful article on this topic is here , >. >>> < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=9258866&CC=207074"> Delphi.Ktop風紀小隊---[ 發問前請先找找舊文章 ]--- |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
How to read EXIF tags.
資料來源:http://www.kuren.org/exif/ EXIFread
Do you have a digital camera? Do you want to read all the extra data on the jpeg or jpg image?
I do. I wrote this C++ command line program to read the exif tags on JPEGs.
It will tell you important info like flash, shutter speed, focal length, and much much more. I am still writing the code, but I wanted to post this program before I go on vacation for anyone out there who is also looking for help on this topic. Download EXIFread and source code. (49K) Or... download this great Windows GUI based program inspired by some of my EXIF reading code.
http://oneilsoftware.hypermart.net/Exif/Exif.html
EXIFren
Another program I wrote will rename your files to the date the picture was taken. I call it EXIFren. This program is also a simple command line program for which I am still working on, but it is almost bug free as it is.
Download EXIFren and source code.(30K)
JPEGget
JPEGget will extract the thumbnail JPEG hidden in your digital camera JPEG. This program is very simple in how it works. It looks through a JPEG file for a second SOI (start of image) marker. If it finds one, it copies that to a new file until it reaches an EOI marker.
Download JPEGget and source code. (28K)
Drop me a line if you found this usefull. email kuren@kuren.org.
Delphi.Ktop風紀小隊---[ 發問前請先找找舊文章 ]--- 發表人 - axsoft 於 2003/05/13 09:23:23
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |