sephiroth74 / android-exif-extended Goto Github PK
View Code? Open in Web Editor NEWExif extended library for Android, based on jhead c library (http://www.sentex.net/~mwandel/jhead/)
License: Other
Exif extended library for Android, based on jhead c library (http://www.sentex.net/~mwandel/jhead/)
License: Other
when ExifTag tagOrientation = exifInterface.getTag (ExifInterface.TAG_ORIENTATION); is always null
ExifInterface exifInterface = new ExifInterface();
exifInterface.readExif( path, ExifInterface.Options.OPTION_ALL );
ExifTag tagOrientation = exifInterface.getTag(ExifInterface.TAG_ORIENTATION);
as I can create a tag for orientation
It crashes from Genymotion emulator 4.4.4. I guess It would crash every time with empty getAllTags
java.lang.NullPointerException
at it.sephiroth.android.library.exif2.ExifOutputStream.stripNullValueTags(ExifOutputStream.java:117)
at it.sephiroth.android.library.exif2.ExifOutputStream.writeExifData(ExifOutputStream.java:78)
at it.sephiroth.android.library.exif2.ExifInterface.writeExif_internal(ExifInterface.java:1157)
at it.sephiroth.android.library.exif2.ExifInterface.writeExif(ExifInterface.java:1089)
at it.sephiroth.android.library.exif2.ExifInterface.writeExif(ExifInterface.java:1062)
Hello,
Thanks for putting this library together. For a project I'm working on I put everything through an encryption cipher before writing anything to disk, so only having writeExif functions that write to a file makes things a little more difficult. Could you expose a function in ExifInterface that writes to a stream rather than an output file?
For my project I've just included your source entirely and added this function, which seems to work for my needs:
public void writeExif(final InputStream input, final OutputStream output) throws IOException
{
writeExif_internal(input, output, mData);
IOUtils.copy(input, output);
output.flush();
output.close();
}
Thanks!
(I would have done a pull request but I'm not really familiar with how to do them properly, so for such a small snippet have just included here!)
If I set a new TAG_ORIENTATION value using exifInterface.setTagValue(ExifInterface.TAG_ORIENTATION, newValue); and then use exifInterface.writeExif(dstFilename), new orientation value is not saved.
US-ASCII supported only. I don't know whether it supports unicode. I modified the US-ASCII to UTF-8,and then I can write chinese characters to exif and can be displayed normaly by other apps.
For release builds I'd like to have an option to disable the logging from this library. There's a lot of (debug) logging emitted currently.
I am trying to write both Tamil and English text in Exif tags but it displays ???? for Tamil text alone.
Is there any other way to write Tamil text in Exif tag?
ExifInterface exif = new ExifInterface(someFile.getPath());
String text="ENGLISHதமிழ்";
exif.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION,text);
exif.saveAttributes();
Hi:
I need lib to jar using in eclipse
Would you build a jar file for me
I don't know how to include Android Studio to eclipse
Thanks
Excelente
Hi, I'm using your library to have more control on exif tags than android default one, it seems to work very good !
However I faced a problem with commons-io dependency. I use other libraries in my project and one of them uses a more recent version of commons-io, and that prevents builds from using proguard (that complains about duplicate zip entry). Would it be possible that you change your import to use version 2.0.1 of commons-io which seems to be the current one ?
http://mvnrepository.com/artifact/commons-io/commons-io/2.0.1
That would prevent from including your sources directly in the project when facing similar cases and use the more "clean" option of gradle depency declaration :)
Thanks a lot
How save сyrillic symbol in tag UserComment?
Heyo!
I know, wrong place to do so, but atleast for your Exif-library, the license is incomplete. To be precise, you're missing the first line of the apache license as described here
It would be hella awesome, if you could fix that, so I can sleep soundly once I ship my app.
Have a nice day
You can neither use Android-Exif-Extended to read GPS data written to a JPEG file by android.media.ExifInterface nor use android.media.ExifInterface to read GPS data written to a JPEG file by Android-Exif-Extended. What is bizarre is that android.media.ExifInterface uses jhead underneath the hood http://androidxref.com/6.0.0_r1/xref/external/jhead/main.c which is what Android-Exif-Extended is supposed to be based off of.
In gradle
implementation 'it.sephiroth.android.exif:library:+'
build error multidex commons-io
fixed by replace to this string
implementation ('it.sephiroth.android.exif:library:+') { exclude module: 'commons-io' } implementation 'commons-io:commons-io:2.4'
I am a bit confused about which version of your library should be used, as there are quite a few different versions.
There is http://mvnrepository.com/artifact/it.sephiroth.android.exif/library in version 1.0.1, which works.
Then there are the versions 1.0.2, 1.0.4, 1.0.5 and 1.0.6 under a different name: http://mvnrepository.com/artifact/it.sephiroth.android.exif/android-exif-extended
I tested 1.0.5 and 1.0.6 but my changes were not saved at all.
And here http://mvnrepository.com/artifact/it.sephiroth.android.library.exif/library-java are the versions 2.97.x I haven't tried those.
Which version do you suggest should be used?
I'm using your library in my app (http://github.com/yourEXP/beepme) for rotation detection and EXIF preservation when downscaling photos. So far everything worked just great up until 2.97.1.
For 2.97.3 and 2.97.4 I get the following message:
No implementation found for native Lit/sephiroth/android/library/media/ExifInterfaceExtended;.getAttributesNative:(Ljava/lang/String;)Ljava/lang/String;
I'm using the method getAttributeInt for TAG_EXIF_ORIENTATION as well as the methods copyFrom and copyTo.
What has changed for the new versions? Do I have to do something in a different way? Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.