Tiff and windows 7 ( exiv2 0.19 )
Added by fab mic over 11 years ago
Hi all,
I have compiled exiv2 library for windows 7 64 bits with visual 2008.
I create a tiff file, and then I write some metadata using exiv2 in that same file.
I call the function : writeMetadata() in my code.
Just after the call to that function, the size of my tiff files becomes zero.
The file is still there but its size is zero.
My code works perfectly on linux, so it is a platform specific problem.
Does anyone experience such a thing ?
Best regards,
Fabien
Replies (8)
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by Andreas Huggel over 11 years ago
This sounds like issue #668. Except that #668 is not a platform specific issue and you say it works on Linux but not on Windows 7.
Nevertheless, can you try exiv2 from SVN on Windows first? (#668 is fixed in the trunk version)
If that doesn't help, can you provide a small reproducer that demonstrates the problem?
Andreas
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by Robin Mills over 11 years ago
If Andreas' suggestion doesn't fix things, please upload a project and code and I'll look at this on Windows7. I'm out on Saturday, so it'll be Sunday in California before I can investigate.
Robin
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by fab mic over 11 years ago
Hi,
I have investigated, and it is not only for Tiff file. I reproduced the error with JPEG one.
I compiled the example addmodel.cpp, and launch it on a JPEG file.
The output is :
C:\testExiv2.exe IMG_5010.JPG
Added a few tags the quick way.
Added key "Exif.Photo.DateTimeOriginal", value "1999:12:31 23:59:59"
Added key "Exif.Image.PrimaryChromaticities", value "1/2 1/3 2/3 3/4"
Modified key "Exif.Image.PrimaryChromaticities", new value "2000:12:31 23:59:59"
Modified key "Exif.Image.PrimaryChromaticities", new value "1/2 1/3 88/77 3/4"
Deleted key "Exif.Image.PrimaryChromaticities"
Caught Exiv2 exception 'IMG_5010.JPG6700: Failed to rename file to ÓÄ↓: No such
file or directory (errno = 2)'
It looks like the name of the file has been corrupted.
The size of the JPEG file is 0 at the end of the process.
Any ideas ?
Fabien
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by Andreas Huggel over 11 years ago
Is the temporary file IMG_5010.JPG6700 still around? More importantly, what compiler did you use to build exiv2?
Robin, maybe you can try to reproduce this.
Andreas
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by fab mic over 11 years ago
Ok, I use visual 2008.
During my tests, I found that i used the configuration file of exv_msvc.h of 0.18 so i replace with the one of 0.19.
It does not complain anymore, but it still replace the image with an empty file.
C:\testExiv2.exe IMG_5010.JPG
Added a few tags the quick way.
Added key "Exif.Photo.DateTimeOriginal", value "1999:12:31 23:59:59"
Added key "Exif.Image.PrimaryChromaticities", value "1/2 1/3 2/3 3/4"
Modified key "Exif.Image.PrimaryChromaticities", new value "2000:12:31 23:59:59"
Modified key "Exif.Image.PrimaryChromaticities", new value "1/2 1/3 88/77 3/4"
Deleted key "Exif.Image.PrimaryChromaticities"
The IMG_5010.JPG6700 is not there.
It looks like it does everything but it can not write the file at the end.
What function are used to write the files ftream, fopen, ... ?
Does anyone make it work on win 7 ?
Thanks for helping me,
Fabien
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by Andreas Huggel over 11 years ago
Fabien,
Please build exiv2 from scratch, using the code from SVN and test with that, before we embark on a witchhunt.
The rename() function is used to rename a temporary file to the final image. Then remove() is called to remove the temporary file.
See FileIo::transfer in basicio.cpp
Andreas
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by Andreas Huggel over 11 years ago
The rename() function is used to rename a temporary file to the final image. Then remove() is called to remove the temporary file.
See FileIo::transfer in basicio.cpp
Note that this happens only for images > 1MB, for smaller files we use a memory buffer rather than a temporary file.
RE: Tiff and windows 7 ( exiv2 0.19 ) - Added by fab mic over 11 years ago
Andreas,
I checkout trunk and compile.
It works with the version in the SVN.
Note I add to comment the function htonl in order to compile in the method sony_decrypt
When will be the next release of exiv2 ?
Thanks,
Fabien