Bugs item #3017880, was opened at 2010-06-18 00:28
Message generated for change (Tracker Item Submitted) made by fnplus
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=650322&aid=3017880&group_id=108380

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Parsing
Group: PEL Version 0.9.x
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Fred N (fnplus)
Assigned to: Nobody/Anonymous (nobody)
Summary: getEntry(PelTag::IMAGE_UNIQUE_ID) always returns null

Initial Comment:
I clear the Exif data of a jpeg and then add a new entry and this process works 
properly, except with the PelTag of IMAGE_UNIQUE_ID. Once an image has been 
processed with it, it should now have a new entry for SOFTWARE, for example, so 
if I run the script again on the image that was just processed, instead of 
$software returning null, it will return a value, which means it only needs to 
be updated using $software->setValue($software_name), see the else condition 
below. That works for SOFTWARE and likely all the others. However, 
IMAGE_UNIQUE_ID always returns null in this process, even though it has been 
set the first time around. I verify that it has been set using three different 
Exif readers and they all show the content is there. So, if I pass the image 
that was just processed through the script again, it should not equal null and 
be sent to the else condition for updating the value. Instead, however, it is 
always null. This should not be happening. 

        @include_once $_SERVER['PHP_INCLUDE'].'/3rdparty/pel/PelJpeg.php';
        
        $success =     1; // return true by default, as this function may not 
resave the file, but it's still success
        $resave_file = 0;
        $jpeg =        new PelJpeg($filename);
        
        // should all exif data on photo be cleared (gd and iu will always 
strip it anyway, so only 
        // force strip if you know the image you're branding is an original)
        $jpeg->clearExif();

        
        if ($exif == null) 
        {
                $exif = new PelExif();
                $jpeg->setExif($exif);
                $tiff = new PelTiff();
                $exif->setTiff($tiff);  
        }
        
        $tiff = $exif->getTiff();
        $ifd0 = $tiff->getIfd();
        if ($ifd0 == null) 
        {
                $ifd0 = new PelIfd(PelIfd::IFD0);
                $tiff->setIfd($ifd0);
        }

        
        $software_name = 'Example V2';
        $software = $ifd0->getEntry(PelTag::SOFTWARE);  

        if ($software == null) 
        {
                $software = new PelEntryAscii(PelTag::SOFTWARE, $software_name);
                $ifd0->addEntry($software);
                $resave_file = 1;
                echo 'null';
        }
        else
        {
                $software->setValue($software_name);
                $resave_file = 1;
                echo 'update';
        }

        if ($resave_file == 1 
        && !file_put_contents($filename, $jpeg->getBytes()))
        {
                // if it was okay to resave the file, but it did not save 
correctly
                $success = 0;
        }
        

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=650322&aid=3017880&group_id=108380

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
PEL-devel mailing list
PEL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pel-devel

Reply via email to