Fantastic! The code is just a single file with minimal Android dependencies, so I made a quick (untested) Java port:
https://code.briarproject.org/akwizgran/metadata Cheers, Michael On 26/03/18 22:32, Hans-Christoph Steiner wrote: > > Turns out Google released an Android Support library that makes it > trivial to strip EXIF from JPEGs and some RAW formats: > https://android-developers.googleblog.com/2016/12/introducing-the-exifinterface-support-library.html > > I found it via this app in F-Droid: > https://gitlab.com/juanitobananas/scrambled-exif > > This is all it does: > ExifInterface exifInterface = new ExifInterface(imagePath); > for (String attribute : getExifAttributes()) { > if (exifInterface.getAttribute(attribute) != null) { > exifInterface.setAttribute(attribute, null); > } > exifInterface.saveAttributes(); > > .hc > > Michael Rogers: >> Please feel free to use it, I place it in the public domain. I'll have a >> look at JPEGs next time I'm procrastinating. ;-) >> >> (By the way, after sending I noticed a bug: if the file ends with a >> truncated ancillary chunk, I think the cleaner will loop forever trying >> to skip to the end of the chunk. Should be easy to fix though.) >> >> Cheers, >> Michael >> >> On 13/12/17 13:02, Hans-Christoph Steiner wrote: >>> >>> That's awesome! Feeling inspired to also strip JPEGs? :-) I think >>> they're easier. There is jhead, exiftool, and ObscuraCam's JNI code for >>> examples. Can we use this under the GPLv3? >>> >>> .hc >>> >>> Michael Rogers: >>>> Hi Hans-Christoph, >>>> >>>> I hacked this together based on the PNG specification, which >>>> distinguishes between ancillary chunks that can be removed without >>>> affecting the image data, and critical chunks that can't. It's been >>>> tested on exactly two PNGs so far. :-) >>>> >>>> http://www.libpng.org/pub/png/spec/1.2/PNG-Structure.html >>>> >>>> Cheers, >>>> Michael >>>> >>>> On 12/12/17 16:25, Hans-Christoph Steiner wrote: >>>>> >>>>> pyexiftool is just a wrapper for exiftool. exiftool looks great, but >>>>> for my use case, I only need to strip all metadata. It would be much >>>>> easier if that was in pure Python and pure Java. perl is a no go on >>>>> Android. >>>>> >>>>> It was dead simple to strip EXIF from JPEG in Python: >>>>> >>>>> from pil import Image >>>>> with open(inpath) as fp: >>>>> in_image = Image.open(fp) >>>>> data = list(in_image.getdata()) >>>>> out_image = Image.new(in_image.mode, in_image.size) >>>>> out_image.putdata(data) >>>>> out_image.save(outpath) >>>>> >>>>> But that broke some PNGs, and the rest were larger in size. >>>>> >>>>> .hc >>>>> >>>>> Rick Valenzuela: >>>>>> oh, you may already know this, but the previous code keeps a copy of the >>>>>> file and metadata. if you want it gone with no copies, you have to add a >>>>>> switch to overwrite, e.g.: >>>>>> >>>>>> ``` >>>>>> with exiftool.ExifTool() as et: >>>>>> et.execute(b'-all=', b'-overwrite_original', b'some.png') >>>>>> ``` >>>>>> >>>>>> On 12/12/2017 23:45, Rick Valenzuela wrote: >>>>>>> heh, nice -- I just found this: >>>>>>> >>>>>>> https://github.com/smarnach/pyexiftool >>>>>>> >>>>>>> Tried it out and it worked great: >>>>>>> ``` >>>>>>> with exiftool.ExifTool() as et: >>>>>>> et.execute(b'-all=', b'some.png') >>>>>>> ``` >>>>>>> >>>>>>> On 12/12/2017 19:53, Hans-Christoph Steiner wrote: >>>>>>>> >>>>>>>> Ah, cool, I thought exiftool only worked with JPEGs. It seems to work >>>>>>>> with just about every image format. Now the open question is how to >>>>>>>> strip all PNG metadata with Python and Java. >>>>>>>> >>>>>>>> .hc >>>>>>>> >>>>>>>> Rick Valenzuela: >>>>>>>>> does exiftool do what you need? >>>>>>>>> >>>>>>>>> `exiftool -all= <some.PNG>` >>>>>>>>> >>>>>>>>> On 11/12/2017 17:57, Hans-Christoph Steiner wrote: >>>>>>>>>> >>>>>>>>>> Anyone know any tools for sanitizing PNGs without touching the >>>>>>>>>> compressed image data? With JPEG it is easy to strip out EXIF with >>>>>>>>>> python-pil or many other tools. I haven't found a simple, clean >>>>>>>>>> approach >>>>>>>>>> in Python for PNGs. >>>>>>>>>> >>>>>>>>>> .hc >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>> >
0x9FC527CC.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
_______________________________________________ List info: https://lists.mayfirst.org/mailman/listinfo/guardian-dev To unsubscribe, email: [email protected]
