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
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>

-- 
PGP fingerprint: EE66 20C7 136B 0D2C 456C  0A4D E9E2 8DEA 00AA 5556
https://pgp.mit.edu/pks/lookup?op=vindex&search=0xE9E28DEA00AA5556
_______________________________________________
List info: https://lists.mayfirst.org/mailman/listinfo/guardian-dev
To unsubscribe, email:  [email protected]

Reply via email to